net如何实现微信公共平台上传下载多媒体文件

  介绍

这篇文章主要介绍。net如何实现微信公共平台上传下载多媒体文件,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

举个例子,有人对着我们的公共微信号拍个照片发送过来,然后我们处理这个照片,比如进行ocr识别字(随后就会降到这个例子),或者人脸识别,或者拍照取证等,这些功能都是相当有用的。那么我们现在就要分析一下这个过程。微信平台肯定不能帮助我们ocr或者人脸识别等功能,要做这些功能首先到得到图片!用户拍摄的照片首先被上传到了文心的服务器,然后就有了一个mediaID,我们用这个mediaID可以下载到我们自己的服务器上然后处理,把结果给微信平台,由微信平台最终反馈给用户(关注者)。微信的开发文档已经给出了下载资源的办法,我改造为。net的,如下:

///, & lt; SUMMARY>,///,才能下载保存多媒体文件,返回多媒体保存路径,///才能,& lt;/SUMMARY>,///才能,& lt; PARAM  name=癆CCESS_TOKEN"祝辞& lt;/PARAM>,///才能,& lt; PARAM  name=癕EDIA_ID"祝辞& lt;/PARAM>,///才能,& lt; RETURNS> & lt;/RETURNS>,   public 才能;string  GetMultimedia (string  ACCESS_TOKEN, string  MEDIA_ID),   ,{大敌;   ,,,string  file =, string.Empty;,   ,,,string  content =, string.Empty;,   ,,,string  strpath =, string.Empty;,   ,,,string  savepath =, string.Empty;,   ,,,string  stUrl =,“http://file.api.weixin.qq.com/cgi-bin/media/get?access_token=", +, ACCESS_TOKEN  +,“和media_id=? +, media_id;,   ,   ,,,HttpWebRequest  req =, (HttpWebRequest) HttpWebRequest.Create (stUrl);,   ,   ,,,req.Method =,“GET",,   ,,,using  (WebResponse  wr =, req.GetResponse ()),   ,,,{,   ,,,,,HttpWebResponse  myResponse =, (HttpWebResponse) req.GetResponse (),,   ,   ,,,,,strpath =, myResponse.ResponseUri.ToString (),,   ,,,,,WriteLog(“接收类别://,,+,myResponse.ContentType),,   ,,,,,WebClient  mywebclient =, new  WebClient (),,   ,,,,,savepath =, Server.MapPath (“image"), +,“\ \”, +, DateTime.Now.ToString (“yyyyMMddHHmmssfff"), +, (new 随机()). next () .ToString () .Substring (0, 4), +,“.jpg",,   ,,,,,WriteLog(“路径://,,+,savepath),,   ,,,,,试一试   ,,,,,{,   ,,,,,,,mywebclient.DownloadFile (savepath strpath也),   ,,,,,,,file =, savepath;,   ,,,,,},   ,,,,,catch  (Exception 交货),   ,,,,,{,   ,,,,,,,savepath =, ex.ToString (),,   ,,,,,},   ,   ,,,},   ,,,return 文件,,   以前,,}

上面的两个参数很好理解,第一就是ACCESS_TOKEN,之前说过很多了,第二就是在微信服务器上的资源id,即mediaID。如果我们要下载微信服务器上的资源总要知道id吧。但是MEDIA_ID又是怎么产生的呢?我首先改造一下之前的消息实体类,加入mediaID属性

class  wxmessage ,   ,{,,   ,,public  string  FromUserName {组,得到,,,},,   ,,public  string  ToUserName {组,得到,,,},,   ,,,public  string  MsgType {组,得到,,,},,   ,,,public  string  EventName {组,得到,,,},,   ,,,public  string  Content {组,得到,,,},   ,,,public  string  Recognition {组,得到,,,},   ,,,public  string  MediaId {组,得到,,,},   ,,,public  string  EventKey {组,得到,,,},   以前,,}

然后改造一下GetWxMessage(),给MediaId赋值

private  wxmessage  GetWxMessage (),   ,,,{   ,,,,wxmessage  wx =, new  wxmessage (),,   ,,,,StreamReader  str =, new  StreamReader (System.Text.Encoding.UTF8 Request.InputStream也),   ,,,,XmlDocument  xml =, new  XmlDocument (),,   ,,,,xml.Load (str);,   ,,,,wx.ToUserName =, xml.SelectSingleNode (“xml") .SelectSingleNode (“ToUserName") .InnerText;,   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

net如何实现微信公共平台上传下载多媒体文件