我正在创建一个api来上传文件。当我通过web路由文件上传它们时它可以工作,但是当我通过api routes文件上传它们时它不起作用。
axios.defaults.headers.put['Content-Type'] = 'multipart/form-data';
axios.put('/api/pikirler', formData);
如果我将其更改为:
axios.defaults.headers.post['Content-Type'] = 'multipart/form-data';
axios.post('/upload', formData);
工作正常。但我想在api路线中使用它。
答案 0 :(得分:3)
您可以在控制器中使用guzzle包。以下是用guzzle上传文件的代码。
$options = [
'multipart' => [
[
'name' => 'user_key'
],
[
'name' => 'file_names',
'contents' => '[]'
],
[
'name' => 'file',
'contents' => file_get_contents($filePath),
'filename' => $fileName,
'headers' => [
'Content-Type' => 'application/octet-stream'
]
]
]
];
$httpClient = new GuzzleClient();
$response = $httpClient->request("POST", "someApiUrl", $options);