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

/// <summary>
        /// 上传临时素材
        /// 返回media_id
        /// </summary>
        /// <param name="userid"></param>
        /// <returns></returns>
        public string UploadLinShiSuCai(int userid) {
            string imgpath = HttpContext.Current.Server.MapPath($"/upload/erweima/{userid}_2.png");
            string appid = WxPayConfig.APPID;
            string secret = WxPayConfig.APPSECRET;

//1. 获取AccessToken(有效期7200秒,开发者必须在自己的服务全局缓存access_token)
            string url1 = $"https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={appid}&secret={secret}";
            string result = HttpService.Get(url1);
            JsonData jd = JsonMapper.ToObject(result);
            string access_token = (string)jd["access_token"];

string url2 = $"https://api.weixin.qq.com/cgi-bin/media/upload?access_token={access_token}&type=image";

//图片转为流
            Image img = new Bitmap(imgpath);
            MemoryStream stream = new MemoryStream();
            img.Save(stream, ImageFormat.Png);
            BinaryReader br = new BinaryReader(stream);
            byte[] data = stream.ToArray();
            stream.Close();

var boundary = "fbce142e-4e8e-4bf3-826d-cc3cf506cccc";
            var client = new HttpClient();
            client.DefaultRequestHeaders.Add("User-Agent", "KnowledgeCenter");
            client.DefaultRequestHeaders.Remove("Expect");
            client.DefaultRequestHeaders.Remove("Connection");
            client.DefaultRequestHeaders.ExpectContinue = false;
            client.DefaultRequestHeaders.ConnectionClose = true;
            var content = new MultipartFormDataContent(boundary);
            content.Headers.Remove("Content-Type");
            content.Headers.TryAddWithoutValidation("Content-Type", "multipart/form-data; boundary=" + boundary);
            var contentByte = new ByteArrayContent(data);
            content.Add(contentByte);
            contentByte.Headers.Remove("Content-Disposition");
            contentByte.Headers.TryAddWithoutValidation("Content-Disposition", $"form-data; name=\"media\";filename=\"{userid}_2.png\"" + "");
            contentByte.Headers.Remove("Content-Type");
            contentByte.Headers.TryAddWithoutValidation("Content-Type", "image/png");
            try
            {
                var result2 = client.PostAsync(url2, content);
                if (result2.Result.StatusCode != HttpStatusCode.OK)
                    throw new Exception(result2.Result.Content.ReadAsStringAsync().Result);
                string jsonstr = result2.Result.Content.ReadAsStringAsync().Result;
                JsonData jd2 = JsonMapper.ToObject(jsonstr);
                result = (string)jd2["media_id"];
                return result;
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message + ex.InnerException.Message);
            }

}

C#-微信公众平台接口-上传临时素材相关推荐

  1. 微信公众平台开发 上传下载多媒体文件

    1 微信公众账号在回复图片.语音.视频的时候,将使用media_id来调用相关文件,很多朋友咨询这个如何开发实现.本文将介绍在微信公众平台开发过程中,如何上传下载多媒体文件. 2 3 4 5 一.上传 ...

  2. 微信公众平台开发 上传素材

    微信公众账号在回复图片.语音.视频的时候,将使用media_id来调用相关文件,很多朋友咨询这个如何开发实现.本文将介绍在微信公众平台开发过程中,如何上传下载多媒体文件. 一.上传多媒体文件 公众号可 ...

  3. 微信公众号开发-上传媒体素材到微信并存入相关信息到数据库

    流程: 本地指定临时或永久素材后调用微信媒体素材上传api,将文件上传到微信服务器,微信返回含media_id的信息,本地数据库存入相关信息,以供以后素材使用. 代码 素材上传页面 <!DOCT ...

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

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

  5. 共享一个调用微信公众平台接口的客户端类库

    由于我所开发活动项目经常要用到微信公众平台所提供的接口,所以本人专门开发了微信客户端的类库. 经过了几个项目的实践,特意将该类库共享出来.源代码已经放在了github上,供大家使用. 首先介绍一下设计 ...

  6. 微信公众号如何上传长图

    微信公众号如何上传长图?我们先要了解为什么要做长图,有哪些难题,最后再来解决如何上传长图. 为什么要做长图? 回顾整个2019年,条漫当道,肉眼可见的,大号们都奔着条漫去了.他们大多看上去好像只用了一 ...

  7. Java 微信上传临时素材

    微信小程序创建直播间,服务端上传临时素材,微信开放社区隐藏太深,不好找,记录一下,抄就行,亲测好用!!! /** * graphurl:上传临时素材微信接口地址,自己拼就行,file:客户端上传的文件 ...

  8. 微信公众号api关注接口php,微信公众平台接口开发入门示例

    本文实例讲述了微信公众平台接口开发入门示例.分享给大家供大家参考.具体如下: 微信公众平台的接口开发是一个现在比较常用的功能了,很多的人都会去了解一下微信公众平台一些简单开发应用,这里就来给大家介绍一 ...

  9. 企业微信上传临时素材文件

    1.控制层 /*** 上传临时素材*/@ResponseBody@PostMapping("/uploadResource")public BaseResponse uploadR ...

最新文章

  1. C语言检查一个字符串是否为另一个字符串的子字符串的算法(附完整源码)
  2. 类型“unknown”上不存在属性“foreach”_JavaScript红宝书第四版精简解析系列--映射Map数据类型...
  3. Screen命令让Linux shell在后台运行
  4. OSChina 周二乱弹 —— 这样成功要到小护士姐姐的微信
  5. ZOJ 3209 Treasure Map DLX
  6. 小身材大能耐,面向物联网开发的 ACRN Hypervisor开源啦!
  7. 程序下载至开发板 芯片超时无应答,无法连接
  8. js+canvas绘制360加速球
  9. 基于微博评论的情感分析研究(小记)
  10. mysql数据文件后缀名_数据文件的后缀名_MySQL
  11. GPRS DTU是什么?其工作原理是什么? (转自aerkate)
  12. Knative-serving资源详解
  13. Java实现微信公众号每日推送
  14. ARM交叉编译工具链分类说明
  15. 公众号滑动图代码_公众号怎么制作图片滑动的效果?怎么做可以上下滑动的长图?...
  16. 汇总现阶段reid方面一些SOTA的paper。
  17. 计算机程序设计员教程,国家职业资格培训教程计算机程序设计员(基础知识).ppt...
  18. 详细分析Java中的浅克隆和深克隆
  19. 阿里巴巴《Java开发手册》2020最新版发布!
  20. Windows系统读写ext2/3/4文件系统的工具「ext2fsd」

热门文章

  1. php语言使用statsd统计指标模板
  2. 虚拟机中web服务器的搭建,虚拟机下搭建web服务器
  3. tensorflow 1.0 学习:参数初始化(initializer)
  4. 大学计算机高级应用学什么,大学计算机高级应用 . 上卷
  5. POJ3522Slim Span(最大边与最小边差值最小的生成树)
  6. lxml 和 XPah (爬虫)
  7. 百练OJ:1007:DNA排序
  8. 全职宝妈跨专业备考信息系统项目管理师【52,52,51】
  9. 信息系统项目管理师-论文专题(三)范围管理论文写作
  10. Angular中父组件通过ViewChild调用子组件的方法