尝试使用curl构建图像自动上传php工具。与其他上载内容一样,没有问题。但是,当涉及到图像上传部分时,我就陷入了困境。在SO处查看了其他类似问题,但找不到任何有帮助的东西。
使用Firefox开发人员工具,我发现发送的标头是:
Host: www.xxxxxx.com
User-Agent: Mozilla/5.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Referer: https://www.xxxxxx.com
Content-Type: multipart/form-data; boundary=---------------------------54682012365
Content-Length: 13645
Origin: https://www.xxxxxx.com
DNT: 1
Connection: keep-alive
Cookie: PHPSESSID=xxxxx;
TE: Trailers
身体要求:
-----------------------------54682012365
Content-Disposition: form-data; name="file"; filename="test.jpg"
Content-Type: image/jpeg
--->THERE GOES SOMETHING I BELIEVE TO BE IMAGETOTEXT(random symbols with few readable parts)<---
-----------------------------54682012365
Content-Disposition: form-data; name="ImId"
0
-----------------------------54682012365--
试图通过CURL重现请求
发送上面的标题。 正文请求:
$img = file_get_contents('test.jpg');
$body_message =
'---------------------------54682012365
Content-Disposition: form-data; name="file"; filename="test.jpg"
Content-Type: image/jpeg
'.$img.'
---------------------------54682012365
Content-Disposition: form-data; name="ImId"
0
---------------------------54682012365--';
卷曲选项:
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HEADER => 1,
CURLINFO_HEADER_OUT => true,
CURLOPT_POST => 1,
CURLOPT_POSTFIELDS => $body_message
但始终会收到自定义JSON错误'No images selected'
;
使用$body_message
进行了各种修改,使用Curlfile进行了一些尝试,但仍然没有成功。
有什么想法吗?
答案 0 :(得分:0)
有一个愚蠢的错误,但是花了一些时间才意识到。 如果有人遇到像我这样的错误: 标头和正文请求中的边界长度不同
---------------------------54682012365
-----------------------------54682012365
在我的$body_message
边界中,短2个破折号