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 请求并发送您的请求以查看它是否有效。
我的控制器中有以下代码:
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 请求并发送您的请求以查看它是否有效。