无法使用jQuery .post方法将文件上传到Laravel

时间:2017-10-13 10:32:13

标签: javascript php jquery ajax laravel

这是我的HTML

<input type="file" class="form-control" name="file-name" id="file-id">

这里的JS应该将文件发送到api

var file = $('input#file-id').val();
$.post('my/url/that/works', {
    file: file,
    volume: volume
}).done(function () {
    //something
}).fail(function () {
    //something else
});

最后我在Laravel的方法:

public function ajaxMethod(Request $request)
{
    if ($request->hasFile('file')) {
        echo "it does";
    }else{
        echo "it does not"; //     <- that happens
    }
    var_dump($request->getContent());//vardumps ('C:/fakepath/[correct_filename])
}

并且ajax调用说它没有文件。我认为我只上传文件名,但不上传文件。我怎样才能改变它?

1 个答案:

答案 0 :(得分:0)

要获取文件,请执行以下操作:

var file = $('input#file-id').prop('files')[0];

代替您的代码:var file = $('input#file-id').val();