PHP 5.6 微信上传永久素材报41005

scarletlx 2017-06-12 09:19:52
调用以下接口上传永久图片素材,一直报41005的错误。
https://api.weixin.qq.com/cgi-bin/material/add_material?access_token=ACCESS_TOKEN&type=TYPE
调用以下接口上传临时素材可以正常返回media_id。
https://api.weixin.qq.com/cgi-bin/media/upload?access_token=ACCESS_TOKEN&type=TYPE
网上查了很多都说是PHP 版本问题,可是我也做了版本判断了,我是用PHP5.6的版本,调用的是CurlFile()。可还是报41005,哪位大神可以帮忙看看呢。万分感谢了!

private function upload_material($type, $file)
{
$filepath = dirname(__FILE__).'/image/'.$file;

if (class_exists('\CURLFile')){ //关键是判断curlfile,官网推荐php5.5或更高的版本使用curlfile来实例文件
$filepa = new CurlFile($filepath);
$filedata = array('media'=>$filepa);
} else {
$filedata = array('media'=>'@'.realpath($filepath),'form-data'=>$file_info);
}

$url = "https://api.weixin.qq.com/cgi-bin/material/add_material?access_token=".$this->access_token."&type=".$type;

var_dump($filedata);
var_dump("<br><br>");

$res = https_request($url, json_encode($filedata));
return $res;
}

function https_request($url, $data = null)
{
$curl = curl_init();
if (class_exists('/CURLFile')) {//php5.5跟php5.6中的CURLOPT_SAFE_UPLOAD的默认值不同
curl_setopt($curl, CURLOPT_SAFE_UPLOAD, TRUE);
} else {
if (defined('CURLOPT_SAFE_UPLOAD')) {
curl_setopt($curl, CURLOPT_SAFE_UPLOAD, FALSE);
}
}
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
if (!empty($data)){
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
}
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($curl);
curl_close($curl);
return json_decode($output,true);
}
...全文
1184 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_41314826 2018-09-26
  • 打赏
  • 举报
回复
$filedata = array("media" => new \CURLFile($file_path),'description' => '{"title":"shiping", "introduction":"介绍"}'); 排除php版本问题外:上传视频常见的会漏掉视频描述
苏康申 2018-02-24
  • 打赏
  • 举报
回复
blog.csdn.net/sukangshen/article/details/78950622
苏康申 2018-01-25
  • 打赏
  • 举报
回复
http://blog.csdn.net/sukangshen/article/details/78950622
qq_40143281 2017-12-06
  • 打赏
  • 举报
回复
同问,你问题解决了吗?

20,359

社区成员

发帖
与我相关
我的任务
社区描述
“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法利用了C、Java和Perl,该语言的主要目标是允许web开发人员快速编写动态网页。
phpphpstorm 技术论坛(原bbs)
社区管理员
  • 开源资源社区
  • phpstory
  • xuzuning
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧