首页 新闻 会员 周边

微信公众平台上传素材接口返回"{\"errcode\":41005,\"errmsg\":\"media data missing\"}"

0
悬赏园豆:5 [已解决问题] 解决于 2015-05-28 10:51
/// <summary>
        /// 上传零时图片地址
        /// </summary>
        public static string UpLoadForeverMediauRL = "https://api.weixin.qq.com/cgi-bin/material/add_material?access_token=ACCESS_TOKEN";
        /// <summary>
        /// 上传临时图片
        /// </summary>
        /// <param name="path"></param>
        /// <returns></returns>
        public static WxImageInfo UpLoadForeverMedia(string path)
        {

            string _url = UpLoadForeverMediauRL;
            _url = _url.Replace("ACCESS_TOKEN", MyWeiXinHelper.AuthorityHelper.AccessToken);
            WebClient c = new WebClient();
//            Content-Disposition: form-data; name="media"; filename="08.jpg"
//Content-Type: image/jpegheaders.Add("Content-Disposition", "attachment; filename=yourname.csv");
            c.Headers.Add("Content-Disposition", "attachment; name=media");
            byte[] result = c.UploadFile(_url,"POST", path);
            string strres = Encoding.Default.GetString(result);
            return JsonConvert.DeserializeObject<WxImageInfo>(strres);
        }

代码如上,返回错误"{\"errcode\":41005,\"errmsg\":\"media data missing\"}"

但是用页面提交可以做到

 //新增永久素材
        string url1 = "http://api.weixin.qq.com/cgi-bin/material/add_material?access_token=ACCESS_TOKEN";
        url1 = url1.Replace("ACCESS_TOKEN", MyWeiXinHelper.AuthorityHelper.AccessToken);
        <form id="media" action="@url1" method="post" enctype="multipart/form-data" name="media">
            <input type="file" name="media">
            <input type="submit" name="Submit1" value="提交">
        </form>

查了各种方法都不行,球大侠指导

大芝麻的主页 大芝麻 | 初学一级 | 园豆:4
提问于:2015-05-10 00:40
< >
分享
最佳答案
0
StringBuilder sbHeader = new StringBuilder(string.Format("Content-Disposition:form-data;name=\"media\";filelength=\"{1}\";filename=\"{0}\"\r\nContent-Type:application/octet-stream\r\n\r\n", fileName, fs.Length));
改成这个试试,我这边已经正常拿到mediaID了
收获园豆:5
blackHui | 菜鸟二级 |园豆:207 | 2015-05-25 15:55

您好,您是什么语言实现的
我最近也遇到这个问题了
语言:C#

请问怎么使用ajax 拼接这个media参数,求大神解释一下

努力学习不怕苦 | 园豆:200 (初学一级) | 2018-12-05 17:03
其他回答(3)
0
秋壶冰月 | 园豆:5903 (大侠五级) | 2015-05-10 11:04

谢谢已经查看过,提示没有媒体文件,可是能确保文件存在并正常读取

支持(0) 反对(0) 大芝麻 | 园豆:4 (初学一级) | 2015-05-10 11:59

@大芝麻: 您好,您的问题解决了吗?
我最近也遇到这个问题了
语言:C#

请问怎么使用ajax 拼接这个media参数,求大神解释一下

支持(0) 反对(0) 努力学习不怕苦 | 园豆:200 (初学一级) | 2018-12-05 17:04
0

这个问题有可能和php版本有关系,可以试试php的其他版本,我也遇见过这个问题,当时用php的版本是5.6.3,结果执行就报这个错误,换了5.5.1或者5.4.3都可以顺利执行,应该是curl_setopt函数在不同版本下执行有区别 吧

myt | 园豆:188 (初学一级) | 2015-05-20 09:45

 用的是PHP5.6版本主要是哪个参数问题啊

支持(0) 反对(0) ikasa007 | 园豆:200 (初学一级) | 2015-12-15 10:58
0

您好,我现在也遇到这个问题,请问您解决了吗

Jmatao | 园豆:202 (菜鸟二级) | 2016-07-20 09:43
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册