1、上传临时素材到公众号遇到的问题:"errcode":41005,"errmsg":"media data missing

解决办法:因为php版本的原因,上传素材一直保错。php的curl的curl_setopt 函数存在版本差异

php5.5已经把通过@加文件路径上传文件的方式给放入到Deprecated中了。php5.6默认是不支持这种方式了

特殊处理1:curl_setopt ( $ch, CURLOPT_SAFE_UPLOAD, false);

特殊处理2:$post_data ['media']  = '@'.$file;

具体实现代码如下

  1. /* 上传多媒体文件 */
  2. public function uploadFile($file, $type = 'image', $acctoken = '') {
  3. //  $post_data ['type'] = $type; // 媒体文件类型,分别有图片(image)、语音(voice)、视频(video)和缩略图(thumb)
  4. $post_data ['media']  = '@'.$file;
  5. //$post_data ['media']  =$file;
  6. $url = "http://file.api.weixin.qq.com/cgi-bin/media/upload?access_token=$acctoken&type=image";
  7. $output=$this->http_post_media($url, $post_data);
  8. return $output;
  1. }
  1. <pre name="code" class="php"> private function http_post_media($url,$strPOST)
  2. {
  3. $oCurl = curl_init ();
  4. curl_setopt ( $oCurl, CURLOPT_SAFE_UPLOAD, false);
  5. if (stripos ( $url, "https://" ) !== FALSE) {
  6. curl_setopt ( $oCurl, CURLOPT_SSL_VERIFYPEER, FALSE );
  7. curl_setopt ( $oCurl, CURLOPT_SSL_VERIFYHOST, false );
  8. }
  9. curl_setopt ( $oCurl, CURLOPT_URL, $url );
  10. curl_setopt ( $oCurl, CURLOPT_RETURNTRANSFER, 1 );
  11. curl_setopt ( $oCurl, CURLOPT_POST, true );
  12. curl_setopt ( $oCurl, CURLOPT_POSTFIELDS, $strPOST );
  13. $sContent = curl_exec ( $oCurl );
  14. $aStatus = curl_getinfo ( $oCurl );
  15. curl_close ( $oCurl );
  16. if (intval ( $aStatus ["http_code"] ) == 200) {
  17. return $sContent;
  18. } else {
  19. return false;
  20. }
  21. }

微信公众号开发---上传临时素材到公众号遇到的问题:"errcode":41005,"errmsg":"media data missing的更多相关文章

  1. 微信上传素材 {"errcode":41005,"errmsg":"media data missing"} 解决方法和思路

    哎lol 连跪两把  就来写写博客    今天遇到一个问题 ,微信公众号开发上传素材是提示报错   41005    errcode":41005,"errmsg":&q ...

  2. php 调用微信上传临时素材接口 {“errcode”:41005,”errmsg”:”media data missing hint”}

    原因:由于PHP5.6以前与之后的版本curl_setopt有差异.PHP5.6以后不再支持”@文件路径”的方式. $picPath= "public\public\upload\xxx.p ...

  3. 微信上传素材返回 '{"errcode":41005,"errmsg":"media data missing"}',php5.6返回

    问题描述: php5.5已经把通过@加文件路径上传文件的方式给放入到Deprecated中了.php5.6默认是不支持这种方式了 解决办法curl处理 function curl_post($url, ...

  4. C#-微信公众平台接口-上传临时素材

    最烦做微信公众平台的东西..文档说得不清不楚,又没示例代码,只能自己 慢慢搜索,弄了一晚上,基本弄出来了,把本地的图片上传到微信的临时素材那里,返回媒体ID,用于其他操作,代码如下 :(自己导入相应的 ...

  5. 微信公众号开发上传图文素材带有卡片小程序报错:errcode=45166,errmsg = invalid content hint

    微信公众号开发自从支持允许在群发图文中插入小程序,方便了小程序的运营及推广.最近在三方服务开发中,要支持图文素材插入小程序遇到了一个很是棘手的问题.官方给出的插入小程序的示例支持文字.图片.卡片.如下 ...

  6. PHP 5.6 微信上传临时素材的坑

    /** * 上传素材 */ function add_material($url){ $access_token = wx_access_token(); $wx_url = "https: ...

  7. 微信小程序开发——上传代码片段到git仓库

    微信开发者工具除了自带的git版本管理(本地服务)之外,还可以推送到在线git仓库中去,这样别人也可以通过git来拉取你的代码片段或小程序. 一.1.登录git 一.2.点击创建项目  一.3.填写项 ...

  8. 微信上传文章素材—ASP.NET MVC从View层传数据到Controller层

    View层: $('#btnNews').click(function() { if (!confirm('确定要提交吗?')) { return; } var frontViewData = []; ...

  9. Java 微信公众号上传永久素材的方法

    Java 微信公众号上传永久素材的方法 学习了:http://blog.csdn.net/u013791374/article/details/53258275 膜拜一下,源码如下: @Request ...

随机推荐

  1. docker环境准备及理论

    1.预热 内核运行在内核空间,进程运行在用户空间,linux进程特性:父进程负责子进程的创建和回收,白发人送黑发人.容器就是为了保护它里面的内容物,不受其他容器干扰,也不去干扰其他容器.容器让进程认为 ...

  2. #请用索引取出下面list的指定元素:

    #!/usr/bin/python # -*- coding: utf-8 -*- L = [ ['Apple', 'Google', 'Microsoft'], ['Java', 'Python', ...

  3. 分金币 Uva 11300

    题意 给定N个人成环状坐,每个人初始分配Ai的金币,金币总数可以被N整除,每个人可以给左右相邻的人一定数量的金币使得最终每个人的金币数量相同,求转移数量最小的方案所转移的总金币数量. N<=10 ...

  4. 1.14(java学习笔记)数组

    假如我们需要用到1000个相同类型的数据,肯定不可能创建1000个变量, 这样既不方便,也不直观,也不便于我们使用.这时就需要用到数组. 一.数组的声明与使用 public class Array { ...

  5. oracle中执行execute的时候报异常ORA-01031的解决办法

    在做实验的时候,编写关于"在存储过程中使用动态sql,建立一个统计表,并把统计结果,插入这个表中"的PL/sql语句在执行时出现权限不足的问题. 上网查询很多,看到了下面这篇博文( ...

  6. 【译】PHP之道(PHP the right way)

    刚入门的同学觉得自己能用PHP写出各种程序就很NB了,但其实作为一个专业程序员,你得有个全面点的知识结构.单元测试总得听过,文档工具总得用用,Xss总得会防.推荐大家把<PHP the righ ...

  7. Debian下载地址

    http://cdimage.debian.org/cdimage/archive/

  8. java的几个概念AOP、IOC、DI、DIP、工厂模式、IOC容器

    1.AOP:面向切面编程 把一些公共类,比如日志类.安全类.数据库连接类.系统统一的认证.权限管理类.资源池(如数据库连接池的管理).性能监控等做成一个公共类,当其他类需要时,进行注入(调用).这样这 ...

  9. Linux zip

    压缩文件: zip -r res.zip [src/] [abc.txt] 解压文件: unzip res.zip -d dir_path

  10. Hadoop部署记录

    1.准备Linux环境 1.0先将虚拟机的网络模式选为NAT 1.1修改主机名 vi /etc/sysconfig/network NETWORKING=yes HOSTNAME=node1 ### ...