如何通过laravel api路由上传文件
我正在创建一个api来上传文件。当我通过web routes文件上传它们时,它工作,但当我通过api routes文件上传它们时,它不工作如何通过laravel api路由上传文件,laravel,vue.js,axios,Laravel,Vue.js,Axios,我正在创建一个api来上传文件。当我通过web routes文件上传它们时,它工作,但当我通过api routes文件上传它们时,它不工作 axios.defaults.headers.put['Content-Type'] = 'multipart/form-data'; axios.put('/api/pikirler', formData); 如果我将其更改为: axios.defaults.headers.post['Content-Type'] = 'multipart/form-d
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路由中使用它。您可以在控制器中使用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);
以下是文档。
您可以在控制器中使用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);
以下是文档。
我不能通过更改标题来上传axios吗?我没有尝试axios@阿扎塔克迈拉多夫。我通常用guzzle。谢谢,我会试试的。但是,如果我能了解如何使用axiosOP进行发布,那就太好了。axiosOP指的是使用axios(javascript)从客户端发布。这个答案是关于使用PHP从服务器端使用guzzle。完全不相干。我相信API路由只需要json数据。您想将其更改为接受多部分/表单数据,这可能会在laravel的某个地方更改,我还没有找到位置。或者只是从axios使用JSON而不是表单数据。我不能通过更改标题将其与axios一起上载吗?我没有尝试axios@阿扎塔克迈拉多夫。我通常用guzzle。谢谢,我会试试的。但是,如果我能了解如何使用axiosOP进行发布,那就太好了。axiosOP指的是使用axios(javascript)从客户端发布。这个答案是关于使用PHP从服务器端使用guzzle。完全不相干。我相信API路由只需要json数据。您想将其更改为接受多部分/表单数据,这可能会在laravel的某个地方更改,我还没有找到位置。或者只使用axios中的JSON而不是表单数据