我在Laravel中尝试将图像附加到HTTP请求时遇到了一个奇怪的问题。我正在使用以下代码将文件发送到第三方API,但第三方只接收部分文件...我是否缺少一些设置...没有错误报告,我得到了一个“成功”响应;
$request = Http::withHeaders(
[
'Accept' => 'application/json',
]
)
->attach(
'firstupload',
Storage::get('/uploads/firstupload.jpeg'),
'firstupload.' . Storage::mimeType('/uploads/firstupload.jpeg'),
)
->attach(
'secondupload',
Storage::get('/uploads/secondupload.jpeg'),
'secondupload.' . Storage::mimeType('/uploads/secondupload.jpeg'),
)
->post(
'https://thirdpartyapi.com/fileUpload',
[
'uploadType' => 'imageUpload',
]
);
2条答案
按热度按时间5ktev3wc1#
您需要将标题设置为multipart/form-data
rsl1atfo2#
问题可能出在
Storage::mimeType
。它返回image/jpeg
。您的文件名将变为firstupload.image/jpeg
和secondupload.image/jpeg
。并且第三方读取了您的文件名的最后一段。即jpeg
。可能将它们误认为同一个文件。尝试使用pathinfo(storage_path($path), PATHINFO_EXTENSION)
代替。