/// <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>
查了各种方法都不行,球大侠指导
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));
您好,您是什么语言实现的
我最近也遇到这个问题了
语言:C#
请问怎么使用ajax 拼接这个media参数,求大神解释一下
谢谢已经查看过,提示没有媒体文件,可是能确保文件存在并正常读取
@大芝麻: 您好,您的问题解决了吗?
我最近也遇到这个问题了
语言:C#
请问怎么使用ajax 拼接这个media参数,求大神解释一下
这个问题有可能和php版本有关系,可以试试php的其他版本,我也遇见过这个问题,当时用php的版本是5.6.3,结果执行就报这个错误,换了5.5.1或者5.4.3都可以顺利执行,应该是curl_setopt函数在不同版本下执行有区别 吧
用的是PHP5.6版本主要是哪个参数问题啊
您好,我现在也遇到这个问题,请问您解决了吗