laravel使用ajax和formData()上传文件时,$request->file()获取不到文件信息,怎么处理?

用$_FILES可以获取到信息,但是想用laravel的$request获取到信息后处理,哪位大神有解决办法?

阅读 14k
7 个回答

你打印一下 $request->headers 看看 ajax 发过来的 Content-Type 是什么,一般这种情况是 Content-Type 有误。

新手上路,请多包涵

如果跨域的话会有接收不到文件的情况,不知道你的具体情况是什么。

新手上路,请多包涵

你好,请问你这个问题解决了吗?

我试了一下,是OK的,你对照下。(对了我测试的是全新的laravel5.4代码,因为是POST请求,会提示tokenmissmatch,在测试的时候注释掉App\Http\Kernel注释掉VerifyCsrfToken::class即可.)

use Illuminate\Http\Request;

Route::get('/upload',function(){

return <<<HTML
        <form  action="/upload" method="post" enctype="multipart/form-data" >
            <input type="file" name="upfile"> <br/>
            <input type="submit" name="submit" >
        </form>
HTML;
});

Route::post('/upload',function(Request $request){
    dd($request->file('upfile'));
});

clipboard.png

laravel ajax请求 header加上csrftoken,注意细节问题。

新手上路,请多包涵

一般是能收到的,如果没传csrftoken,也会报错;所以有可能$request不是laravel自带的Request

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进