php - 在PHP的curl中指定multipart/form-data各部分的Content-Type

标签 php curl multipartform-data

如何指定多部分/表单数据请求的特定部分的内容类型?图像的内容类型作为 application/octet-stream 发送,但服务器期望它是 image/jpeg。这会导致服务器拒绝我的请求。

$data["file"] = "@/image.jpg";
$data["title"] = "The title";
$data["description"] = "The description";

//make the POST request
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL,$url);
curl_setopt($curl, CURLOPT_VERBOSE, 1);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
$result = curl_exec($curl);

这是请求的相关部分:

Content-Type: multipart/form-data; boundary=----------------------------fc57f743c490

------------------------------fc57f743c490
Content-Disposition: form-data; name="file"; filename="NASA-23.jpg"
Content-Type: application/octet-stream

我希望它是:

Content-Type: multipart/form-data; boundary=----------------------------fc57f743c490

------------------------------fc57f743c490
Content-Disposition: form-data; name="file"; filename="NASA-23.jpg"
Content-Type: image/jpeg

最佳答案

你会做这样的事情,

$data["file"] = "@/image.jpg;type=image/jpeg";

//make the POST request
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL,$url);
curl_setopt($curl, CURLOPT_VERBOSE, 1);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
$result = curl_exec($curl);

关于php - 在PHP的curl中指定multipart/form-data各部分的Content-Type,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3209057/

相关文章:

curl - 如何在 meteor HTTP 包中转换这个 curl?

java - 即 11 : Error while sending Multipart Form Data request: Stream ended unexpectedly

android - 是否可以使用 Retrofit 通过 Multipart 发送 String[]?

multipartform-data - 如何使用 Postman 发送多部分/表单数据请求

php - pjax 提交表单 URL 重定向

php - 将到期时间插入数据库并在另一页上倒计时

javascript - 如何使用 Node.js 发出 https 请求? - Myscript 在 http.get 中产生 TypeError

PHPcurl自动身份验证不设置 session

php - 如何使用 WooCommerce 截断产品描述中的字符

php - 没有PHP错误,codeigniter仍然显示空白页