繁体   English   中英

Laravel 5.2 ajax文件上传不接收文件

[英]Laravel 5.2 ajax file upload does not receives file

我有一个Laravel 5.2应用程序,我尝试通过ajax上传一些文件,但是laravel没有收到它们。

这是我的代码:

function uploadImages(selector){
var file_data = selector.prop('files')[0];
var form_data = new FormData();
form_data.append('file', file_data);
jQuery.ajax({
    url: '/uploadfile/', 
    dataType: 'json',
    cache: false,
    contentType: false,
    processData: false,
    data: form_data,                         
    type: 'POST',
    success: function(php_script_response){
        console.log(php_script_response);
    }, 
    error: function(jqXHR, textStatus, errorThrown){
        console.log(textStatus);
        console.log(errorThrown);
    }
});
}

这是php部分:

public function uploadPhoto(Request $request){
    $string = str_random(40);
    $response = [];

    $file = $request->file('file');

    $response['str'] = $file;

    return response()->json($response);
}

问题是,$ file是NULL (success函数将Object { str: "NULL" }打印到控制台)。

我检查了控制台的“网络”选项卡中发送的标题,看起来图像是以加急方式发送的。 有人有什么想法吗?

更新:

这是html表单:

<form action="" method="post" enctype="multipart/form-data">
    <input type='file' id='choosePhoto' name='file'>
</form>

我建议使用这个jquery插件: http//malsup.com/jquery/form/#file-upload

在你的js上添加:

    $('#my-form').ajaxForm({

            beforeSubmit: function(formData, jqForm, options){
                // just like jquery ajax
            },

            success: function(responseText, statusText, xhr, $form){

                console.log(responseText);

            },

            clearForm: true //clear form after submit
        });

然后在你的观点:

<form id="my-form" method="POST" action="{{ URL::to('my/route') }}" enctype="multipart/form-data">
    <input type="file" name="image" accept="image/*" required>
    <input class="subir" type="submit" name="submit" value="Upload">
    {{ csrf_field() }}

</form>

从上面的代码我所理解的是你遇到的问题不是laravel uploader而是jquery片段。 在jquery中,您必须以不同的方式处理文件上载。 在此处找到有关创建通过ajax / jquery上传文件的代码段教程

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM