php curl上传图片时Content-Type错误问题

本文介绍了一种解决使用Redhat6+Nginx+PHP环境下,PHPCURL上传图片到开心网时遇到的MIME类型错误问题的方法。通过在文件名后添加;type=image/jpeg,成功将Content-Type从application/octet-stream更改为image/jpeg,从而解决了上传失败的问题。此方法在CURL7.19.7中有效。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Redhat 6 + Nginx +PHP环境,用PHP CURL上传图片到开心网,图片的MIME类型错误,如下:


------------------------------bcf414c27670

Content-Disposition: form-data; name="file1"; filename="/tmp/dog.jpg"

Content-Type: application/octet-stream

 

Content-Type不是image/jpeg导致上传失败。

 

通过在文件名后面加上";type=image/jpeg"解决了该问题,如'file' => '@/test.jpg;type=image/jpeg'

 

CURL 7.19.7支持此方法,7.16.0不支持此方法

PHPcURL库可以用来发送HTTP请求,包括GET请求。在使用cURL发送GET请求时,可以通过设置cURL选项来携带HTTP头部信息,比如`Authorization`和`Content-Type`。 下面是一个使用PHP cURL发送GET请求并携带`Authorization`和`Content-Type`头部的示例代码: ```php <?php // 初始化cURL会话 $curl = curl_init(); // 设置cURL选项,这里是目标URL curl_setopt($curl, CURLOPT_URL, "http://example.com/api/resource"); // 设置HTTP头部信息,需要的Authorization头和Content-Type头 $headers = [ "Authorization: Bearer your_access_token", // 替换为你的实际令牌 "Content-Type: application/json" // 表明发送的数据格式为JSON ]; // 设置cURL的HTTP头部选项 curl_setopt($curl, CURLOPT_HTTPHEADER, $headers); // 设置cURL选项,要求cURL返回传输的内容而不是直接输出 curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); // 执行cURL会话 $response = curl_exec($curl); // 检查是否有错误发生 if (curl_errno($curl)) { // 输出错误信息 echo 'Error:' . curl_error($curl); } else { // 输出响应内容 echo $response; } // 关闭cURL资源,并释放系统资源 curl_close($curl); ?> ``` 在上述代码中,我们首先创建了一个cURL会话,并设置了目标URL。接着定义了一个包含所需头部信息的数组,并通过`CURLOPT_HTTPHEADER`选项传递给cURL。我们还设置了`CURLOPT_RETURNTRANSFER`为`true`,这样`curl_exec`函数会返回响应内容,而不是直接输出到浏览器。最后执行cURL会话,并根据需要处理响应或错误
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值