#region 上传永久媒体文件/// <summary>///上传永久媒体文件/// </summary>public class UploadForeverMediaReModel{public string type { get; set; }public string media_id { get; set; }public string url { get; set; }public string errcode { get; set; }public string errmsg { get; set; }}public static string UploadForeverMedia(string file, string MsgType, string accessToken, string guid, string LogName){FileInfo fileinfo = new FileInfo(file);T9.Util.LogUtil.WriteLog("上传文件:" + file, LogName);//(image): 2M,支持bmp/png/jpeg/jpg/gif格式//(voice):2M,播放长度不超過60s,mp3/wma/wav/amr格式//(video):10MB,支持MP4格式//(thumb):64KB,支持JPG格式​string fileName = file;string url = string.Format("https://api.weixin.qq.com/cgi-bin/material/add_material?access_token={0}&type={1}", accessToken, MsgType);FileStream fs = new FileStream(file, FileMode.OpenOrCreate, FileAccess.Read);byte[] fileByte = new byte[fs.Length];fs.Read(fileByte, 0, fileByte.Length);fs.Close();// 設置參數HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;CookieContainer cookieContainer = new CookieContainer();request.CookieContainer = cookieContainer;request.AllowAutoRedirect = true;request.Method = "POST";string boundary = DateTime.Now.Ticks.ToString("X"); // 隨機分隔線request.ContentType = "multipart/form-data;charset=utf-8;boundary=" + boundary;byte[] itemBoundaryBytes = Encoding.UTF8.GetBytes("\r\n--" + boundary + "\r\n");byte[] endBoundaryBytes = Encoding.UTF8.GetBytes("\r\n--" + boundary + "--\r\n");StringBuilder sbHeader =new StringBuilder(string.Format("Content-Disposition:form-data;name=\"media\";filename=\"{0}\"\r\nContent-Type:application/octet-stream\r\n\r\n", fileinfo.Name));byte[] postHeaderBytes = Encoding.UTF8.GetBytes(sbHeader.ToString());Stream postStream = request.GetRequestStream();postStream.Write(itemBoundaryBytes, 0, itemBoundaryBytes.Length);postStream.Write(postHeaderBytes, 0, postHeaderBytes.Length);postStream.Write(fileByte, 0, fileByte.Length);#region 新增描述信息if (MsgType == "video"){byte[] tempboundary = Encoding.UTF8.GetBytes("\r\n\r\n--" + boundary + "\r\n");postStream.Write(tempboundary, 0, tempboundary.Length);byte[] temp1 = Encoding.UTF8.GetBytes("\r\nContent-Disposition:form-data;name=\"description\";\r\nContent-Type:application/json\r\n\r\n");byte[] temp2 = Encoding.UTF8.GetBytes("{\"title\":\"标题\",\"introduction\":\"内容\"}");postStream.Write(temp1, 0, temp1.Length);postStream.Write(temp2, 0, temp2.Length);}#endregionpostStream.Write(endBoundaryBytes, 0, endBoundaryBytes.Length);postStream.Close();HttpWebResponse response = request.GetResponse() as HttpWebResponse;Stream instream = response.GetResponseStream();StreamReader sr = new StreamReader(instream, Encoding.UTF8);string content = sr.ReadToEnd();T9.Util.LogUtil.WriteLog("UploadMedia-returnJson:" + content, guid, LogName);UploadForeverMediaReModel result = T9.Util.JSONUtil.JsonDeserialize<UploadForeverMediaReModel>(content);if (string.IsNullOrWhiteSpace(result.errcode)){return result.media_id;}return "";}#endregion

微信公众平台对接C#-上传永久媒体文件相关推荐

  1. 微信公众平台对接C#-上传临时文件

    #region 上传临时文件/// <summary>///上传临时文件/// </summary>public class Medial{public string type ...

  2. PHP开发微信公众号,实现上传永久素材

    众号永久素材从名字可以知道, 我们的永久素材上传到微信服务器后, 只要你不删除, 永久有效, 可以使用. 所以我们上传永久素材后, 获取它的media_id, 直接存入到我们的web服务器数据库, 这 ...

  3. 微信公众平台开发视频上传

    /**      * 视频上传      *       * @param filePath 文件路径      * @param accessToken accessToken      * @re ...

  4. 微信公众平台中怎么上传附件?

    当今社会是互联网的时代,人们也从看报纸转获取信息变为网上浏览阅读获取咨询. 而微信是拥有最大的流量平台之一,超10亿用户! 微信公众号平台也就是我们熟知的微信公众号,那我们运营者想要为微信公众号文章添 ...

  5. 学一学微信公众号如何高效上传附件

    在过去的几年时间中,我一直是做公众号运营工作,见证了微信公众号由小到大的成长,也在这个过程中不断地完善自己的公众号运营技能,让自己能够更好的适应公众号的运营. 其中,有一项技能是微信公众号运营必须掌握 ...

  6. 使用树莓派与微信公众平台对接(python)

    在网上参阅众多教程之后,均无法找到可直接在树莓派上运行的python微信平台对接模板. 参阅http://my.oschina.net/yangyanxing/blog/159215此博客的基于sae ...

  7. 微信公众号-音频接口(上传、下载、辨音)

    原文链接:https://www.cnblogs.com/liruoruo/p/10276109.html 音频相关接口,其中需要注意的是:上传语音有效期3天,可用微信多媒体接口下载语音到自己的服务器 ...

  8. 微信公众号 多图上传

    最近弄微信公众号对接,需要调用微信接口,多图上传 <div style="display: flex; align-items: center;" class="w ...

  9. 微信公众号里如何上传html,微信公众号怎么做表单,微信万能表单如何添加到公众号里...

    微信的使用占据着大众的日常,而微信上的一些订单.预约.登记.投诉.反馈等功能都可以使用微信万能表单来实现,那么微信万能表单怎么做?下文带来微信公众号表单制作方法,方法很简单,需要的朋友一起看看吧. 微 ...

最新文章

  1. 百度提出PADDLESEG:一个高效的图像分割开发工具
  2. 关于automake 和 makefile 使用感受
  3. bootstrap modal使用方法
  4. esp32摄像显示时间_科普系列 || 第一弹~基于ESP32的WiFi连接
  5. 语言nomogram校准曲线图_R语言实现Cox模型校准度曲线绘制
  6. 在Visual Studio 2017中找不到.NET Framework 4.6.2
  7. Facebook产品更新,官方通知你收到了吗?
  8. java.io.IOException: Bad connect ack with firstBad
  9. 如何使用U盘制作Windows 7安装盘
  10. 使用python开发的GUI可视化界面植物名录查询系统,使用python读取xls文件,读取xlsx文件。tkinter使用
  11. 优先队列(priority_queue)总结
  12. codeforces 158B
  13. html三段式布局,移动端 三段式布局 (flex方式)
  14. Android Studio3.0以上 apk调试运行没有问题 apk安装运行闪退
  15. mysql cast numeric_(转载)mysql decimal、numeric数据类型
  16. Win10系统wifi图标消失无法联网怎么办
  17. 论文研读-基于种群分布的两阶段自适应知识迁移多目标进化多任务
  18. Flink 使用Table Api 读取文件数据并写出到文件中
  19. Dubbo3 落地实践及 Mesh 解决方案
  20. 【北邮国院大二下】产品开发与营销知识点整理 Topic7

热门文章

  1. C语言之计算log2
  2. 更新macOS Big Sur后死机黑屏的解决办法
  3. ROS自学实践(5):GAZEBO建模及添加相机和激光雷达传感器并进行仿真
  4. 矩阵的负二分之一次方
  5. (php毕业设计)基于php学生在线考试管理系统
  6. 为什么LPWA对物联网来说是颠覆性的新网络?
  7. antd pro(V5) 实现多tab
  8. Html5 CSS设置背景图片
  9. 2017爱奇艺校园招聘笔试题
  10. 从Oracle读取数据并用python处理过程记录(构建BARRA因子遇到的问题)