微信上传素材 {"errcode":41005,"errmsg":"media data missing"} 解决方法和思路
哎lol 连跪两把 就来写写博客 今天遇到一个问题 ,微信公众号开发上传素材是提示报错 41005 errcode":41005,"errmsg":"media data missing 检查了好几遍 确信都没有问题 看了下接口说明

只能说微信文档写的越来越简单 简直不适合我这种小白
治理介绍一下思路 ,就是利用curl 模拟表单提交 江图片上传至微信 @+文件绝对路径,curl 的curl_setopt PHP5.5一下可以,但是5.6就不在支持了 The usage of the @filename API for file uploading is deprecat 所以遇到这种问题就不要太惊讶,php 没有问题,微信也没有问题 有问题的是版本
在组装数据的时候 数据格式应该是这样
他吗的微信说的一点也不详细,然后就是模拟curl 上传 详细代码如下
$token ="bwxuV4NU8-c6KyDZu8CiVIkLIle13TzYVw_D2FGswfOz4yW5kvOeVA-1YTE6AC6T0kKI_TYIYllCuTmVmAHMTGyXEjChuP_TwSbHcYAOBlIyNugVYIIeVPFAVvAxmnYWIMTgAHAEIP";
function add_material($file_info,$token){
$url="https://api.weixin.qq.com/cgi-bin/material/add_material?access_token={$token}&type=image";
$ch1 = curl_init ();
$real_path="{$_SERVER['DOCUMENT_ROOT']}{$file_info['filename']}";
$data= array("media"=>"@{$real_path}",'form-data'=>$file_info);
curl_setopt ( $ch1, CURLOPT_URL, $url );
curl_setopt ( $ch1, CURLOPT_POST, 1 );
curl_setopt ( $ch1, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt ( $ch1, CURLOPT_CONNECTTIMEOUT, 5 );
curl_setopt ( $ch1, CURLOPT_SSL_VERIFYPEER, FALSE );
curl_setopt ( $ch1, CURLOPT_SSL_VERIFYHOST, false );
curl_setopt ( $ch1, CURLOPT_POSTFIELDS, $data );
$result = curl_exec ( $ch1 );
curl_close ( $ch1 );
return $result;
}
$file_info=array(
'filename'=>'/index.jpg', //图片相对于网站根目录的路径
'content-type'=>'image/png', //文件类型
'filelength'=>'90011' //图文大小
);
add_material($file_info,$token);
以上在 wamp 环境下清册有效 注意php 版本是5.5
这一需要说明的是如果上传失败 在检查代码没有问题后,应该去检查不同php版本的curl 重点就是curl_setoptd 参数设置 具体可以参考curl官方说明或者 http://blog.csdn.net/yxwb1253587469/article/details/51777903


还有一些小问题 但是已经能使用了,友情提示 在使用curl 时,千万不要随意拷贝人家的,要去弄明白每个参数的含义 ,以及不同php版本的特性
微信上传素材 {"errcode":41005,"errmsg":"media data missing"} 解决方法和思路的更多相关文章
- 微信公众号开发---上传临时素材到公众号遇到的问题:"errcode":41005,"errmsg":"media data missing
1.上传临时素材到公众号遇到的问题:"errcode":41005,"errmsg":"media data missing 解决办法:因为php版本 ...
- php 调用微信上传临时素材接口 {“errcode”:41005,”errmsg”:”media data missing hint”}
原因:由于PHP5.6以前与之后的版本curl_setopt有差异.PHP5.6以后不再支持”@文件路径”的方式. $picPath= "public\public\upload\xxx.p ...
- 微信上传素材返回 '{"errcode":41005,"errmsg":"media data missing"}',php5.6返回
问题描述: php5.5已经把通过@加文件路径上传文件的方式给放入到Deprecated中了.php5.6默认是不支持这种方式了 解决办法curl处理 function curl_post($url, ...
- 【微信上传素材接口--永久性】微信永久性上传、获取返回的medie_id 和url
上传图片到微信服务器获得media_id和url (永久性) 其他接口类:https://www.cnblogs.com/gjw-hsf/p/7375261.html 转载地址:https://blo ...
- 上传图文{"errcode":40007,"errmsg":"invalid media_id"}解决方案
{"errcode":40007,"errmsg":"invalid media_id"}解决方案 网上关于这个问题的解决一般是把thumb ...
- ueditor上传大容量视频报http请求错误的解决方法
故障现象: 当使用百度编辑器ueditor上传大容量视频或大容量图片的时候,编辑器报"http请求错误"的解决方法详解: 原因分析: 目前很多CMS整合了百度的ueditor编辑器 ...
- jfinal文件上传和form表单值为null的解决方法
今天使用jfinal做上传提交的时候,遇到一个问题:添加了上传功能,原来的form表单submit提交时所有值都为null了,研究了很长时间,终于发现 在jfinal上传时候,jsp加 enctype ...
- jquery上传插件uploadify 报错http error 302 解决方法之一
前段时间用到jquery上传插件uploadify时,始终出现系统报出 http error 302 的错误. 网上大量搜集信息,基本上都是说session值丢失的问题,根据网友提供的解决方案进行修改 ...
- WebClient使用与IIS7最大上传文件--升级&引导窗口&目录同步完整解决方法
IIS7最大上传文件说明:http://www.mzwu.com/article.asp?id=2449 WebClient使用说明使用using 及时回收资源 using(var wc=new W ...
随机推荐
- docker基础(二)
1.base镜像的特点 (1)不依赖于其他的镜像 (2)其它的可以通过它位基础作为容器的底层 2.在下载镜像的时候,只有几百M,但是安装一个Ubuntu虚拟机的镜像就比较大,首先会想到图形化界面,其实 ...
- 每日技术总结:setInterval,setTimeout,文本溢出,小程序,wepy
前言: 项目背景:vue,电商,商品详情页 1.倒计时,倒计到0秒时停止 data () { return { n: 10 } }, created () { let int = setInterva ...
- IT人都很忙(茫)
我发现,身边的盆友都很忙,要么在加班,要么加班刚回家:要么在出差,要么刚出差回来. 难道搞IT的人都很忙么?忙还是茫? 大学期间,不知道未来要干什么,很多人也不清楚应该学习哪些知识和技能,是否需要考证 ...
- 高并发解决方案--负载均衡(HTTP,DNS,反向代理服务器)(解决大流量,高并发)
高并发解决方案--负载均衡(HTTP,DNS,反向代理服务器)(解决大流量,高并发) 一.总结 1.什么是负载均衡:当一台服务器的性能达到极限时,我们可以使用服务器集群来提高网站的整体性能.那么,在服 ...
- stackedit
https://github.com/benweet/stackedit/ https://github.com/waltcow/blog/issues/4
- 安装hadoop1.2.1集群环境 分类: A1_HADOOP 2014-08-29 15:49 1444人阅读 评论(0) 收藏
一.规划 (一)硬件资源 10.171.29.191 master 10.173.54.84 slave1 10.171.114.223 slave2 (二)基本资料 用户: jediael 目录 ...
- java之Thread.sleep(long)与object.wait()/object.wait(long)的区别及相关概念梳理(good)
一.Thread.sleep(long)与object.wait()/object.wait(long)的区别sleep(long)与wait()/wait(long)行为上有些类似,主要区别如下:1 ...
- PatentTips -- 一种在CoAP网络中注册的方法及装置
技术领域 [0001] 本发明涉及一种在CoAP网络中注册的方法及装置,属于网络通信技术领域. 背景技术 [0002] (Internet of Things,物联网)作为新一代的信息技术,越来越受到 ...
- Android使用JNI实现Java与C之间传递数据
介绍Java如何将数据传递给C和C回调Java的方法. java传递数据给C,在C代码中进行处理数据,处理完数据后返回给java.C的回调是Java传递数据给C,C需要用到Java中的某个方法,就需要 ...
- C 语言常见 API(fprintf、fputs、fprintf)
1. fprintf:输出到文件描述符对应的文件 stderr:错误输出也是一种特殊的文件描述符 #define FatalError(str) fprintf(stderr, "%s\n& ...