Laravel 使用 Postman 上传文件 API

Laravel file upload API using Postman

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

    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' ]);

我正在使用 postman 来测试我的应用程序。

Header:

Body:

原始:

POST /scotic/public/api/upload HTTP/1.1 Host: 127.0.0.1:80 Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW Cache-Control: no-cache Postman-Token: 0caf7349-5c91-e5f1-766f-72a3f1e33900

------WebKitFormBoundary7MA4YWxkTrZu0gW Content-Disposition: form-data; name="uploads[]"; filename="banana.png" Content-Type: image/png png data goes here.. ------WebKitFormBoundary7MA4YWxkTrZu0gW--

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

经过一番挖掘,我让我的上传器在没有邮递员的情况下工作,我注意到邮递员的 Content-Type 中缺少“--boundary”。 LHS 工作,RHS(邮递员)不工作。

有什么想法吗?

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

根据此 post 的其中一个答案:

无需手动添加 content-type header。您正在覆盖 Postman 设置的值。只需 select form-data 在 POST 请求并发送您的请求以查看它是否有效。