使用Postman的Laravel文件上传API

我的控制器中有以下代码:

public function upload(Request $request)
    {
       $files = $request->file('uploads');
       if(!empty($files)) {
           foreach($files as $file) {
               Storage::put($file-getClientOriginalName(),file_get_contents($file));
        }
    }

这是通过 routes 中的 api.php 调用的:

Route::post('/upload', [ 'uses' => 'UploadController@upload' ]);

我正在使用邮递员来测试我的申请 .

Header:

enter image description here

Body:

enter image description here

Raw:

POST / scotic / public / api / upload HTTP / 1.1主机:127.0.0.1:80内容类型:multipart / form-data; boundary = ---- WebKitFormBoundary7MA4YWxkTrZu0gW Cache-Control:no-cache Postman-Token:0caf7349-5c91-e5f1-766f-72a3f1e33900 ------ WebKitFormBoundary7MA4YWxkTrZu0gW Content-Disposition:form-data;名称= “上传[]”; filename =“banana.png”内容类型:image / png png数据在这里.. ------ WebKitFormBoundary7MA4YWxkTrZu0gW--

上传文件后 $files 为空 . 我究竟做错了什么?

经过一番挖掘,我让我的上传工作没有邮差,我注意到'--boundary'在邮递员的 Content-Type 中丢失了 . LHS工作,RHS(邮递员)不起作用 .

enter image description here

有任何想法吗?

回答(1)

3 years ago

问题是我在邮递员中明确指定了 Content-Type .

根据post的答案之一:

无需手动添加内容类型标头 . 你重写了邮差所设定的 Value . 只需在POST请求中选择form-data并发送您的请求以查看它是否有效 .