php7.3 curl上传文件报错curl_setopt(): Disabling safe uploads is no longer supported

Posted 骑着新浪狂奔

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php7.3 curl上传文件报错curl_setopt(): Disabling safe uploads is no longer supported相关的知识,希望对你有一定的参考价值。

参考链接:https://blog.csdn.net/u012767761/article/details/74001746

因为项目之前是在php5.6环境运行的,不会报错,今天移植到新环境,php是7.3,结果就报错了,现在记录一下解决办法。

if (defined(‘CURLOPT_SAFE_UPLOAD‘)) {

  curl_setopt($curl, CURLOPT_SAFE_UPLOAD, false);

}

定位到是这段代码报错,根据网上搜索的答案,把这段代码替换成下面的代码:

if (class_exists(‘CURLFile‘)) {// 这里用特性检测判断php版本
curl_setopt($curl, CURLOPT_SAFE_UPLOAD, true);
$data = array(‘media‘ => new CURLFile(realpath($filedata)));//>=5.5
} else {
if (defined(‘CURLOPT_SAFE_UPLOAD‘)) {
curl_setopt($curl, CURLOPT_SAFE_UPLOAD, false);
$data = array(‘media‘ => ‘@‘ . realpath($filedata));//<=5.5
}
}
其中,$filedata是要上传的文件的绝对路径,用字符串表示。$data数组里的key因为我是要上传到微信服务器,根据微信接口改成了media,这个可以根据需要更改。
最后保存代码,再次运行,上传成功,搞定。

以上是关于php7.3 curl上传文件报错curl_setopt(): Disabling safe uploads is no longer supported的主要内容,如果未能解决你的问题,请参考以下文章

win中使用curl上传文件报错

关于window10下php7.3开启curl扩展失败的解决方法

使用curl进行ftp上传 为啥第二次报错

php如何获取远程文件内容的函数

curL 返回 404 错误

PHP 7.3 找不到 curl