首先获取微信签名,Controller代码:

public ActionResult MutualHelpAdd(){var jssdkUiPackage = JSSDKHelper.GetJsSdkUiPackage(WeChatParameter._appID, WeChatParameter._appSecret, Request.Url.AbsoluteUri);ViewBag.AppId = WeChatParameter._appID;ViewBag.Timestamp = jssdkUiPackage.Timestamp;ViewBag.NonceStr = jssdkUiPackage.NonceStr;ViewBag.Signature = jssdkUiPackage.Signature;return View();}

View Code

视图代码:

  wx.config({//debug: true,appId: '@ViewBag.AppId',timestamp: '@ViewBag.Timestamp',nonceStr: '@ViewBag.NonceStr',signature: '@ViewBag.Signature',jsApiList: ['chooseImage','previewImage','uploadImage','downloadImage']});wx.ready(function () {// 5 图片接口// 5.1 拍照、本地选图var images = {localId: [],serverId: []};document.querySelector('#btnAddImage').onclick = function () {wx.chooseImage({count: 3, // 默认9,设置可以同时上传的图片数量sizeType: ['original', 'compressed'],     // 可以指定是原图还是压缩图,默认二者都有sourceType: ['album', 'camera'],         // 可以指定来源是相册还是相机,默认二者都有
                    success: function (res) {images.localId = res.localIds;//alert('已选择 ' + res.localIds.length + ' 张图片');var i = 0, length = images.localId.length;images.serverId = [];function upload() {wx.uploadImage({localId: images.localId[i],success: function (res) {i++;//alert('已上传:' + i + '/' + length);
                                    images.serverId.push(res.serverId);//TODO: res.serverId 就是 media_id,根据它去微信服务器读取图片数据:自定义上传到自己服务器var imageJson = $("#hdImageJson").val();$.ajax({type: 'post',url: '/Common/AddImage',async: false,data: {media_id: res.serverId,imageJson: imageJson,folderName:"MutualHelp"},success: function (data) {if (data.ImageUrl != '') {// 返回 图片在我们自己的服务器的urlvar img = "<img class='task_image' src='/images/" + data.ImageUrl + "'/>";$("#imgList").append(img);$("#hdImageJson").val(data.ImageJson);}},error: function (err) {}})if (i < length) {upload();}},fail: function (res) {alert(JSON.stringify(res));}});}upload();}});};});

View Code

图片保存到本地服务器方法:

  /// <summary>/// 公用 微信 上传图片方法/// </summary>/// <param name="media_id"></param>/// <param name="imageJson"></param>/// <returns></returns>public JsonResult AddImage(string media_id, string imageJson,string folderName){var imgUrl = "";try{List<ImageList> curImageResult;if (!string.IsNullOrEmpty(imageJson)){curImageResult = JsonConvert.DeserializeObject<List<ImageList>>(imageJson);}else{curImageResult = new List<ImageList>();}var accessToken = AccessTokenContainer.TryGetAccessToken(WeChatParameter._appID, WeChatParameter._appSecret);System.IO.MemoryStream stream = new System.IO.MemoryStream();MediaApi.Get(accessToken, media_id, stream);Image img = Image.FromStream(stream);var imgName = DateTime.Now.ToString("yyyyMMddhhss");var fileSaveUrl =string.Format(FilePath + "/{0}/" + imgName + ".jpg", folderName);imgUrl = string.Format("/{0}/" + imgName + ".jpg", folderName);img.Save(fileSaveUrl);var imageEntity = new ImageList{ImageKey = imgName,ImageUrl = imgUrl,UploadTime = DateTime.Now};curImageResult.Add(imageEntity);imageJson = JsonConvert.SerializeObject(curImageResult);}catch (Exception ex){imgUrl = "";}var result = new{ImageJson = imageJson,ImageUrl = imgUrl};return Json(result);}

View Code

转载于:https://www.cnblogs.com/XM-CHC/p/6419329.html

.net mvc 使用盛派Senparc.Weixin 上传图片接口相关推荐

  1. 微信mvc上传图片到服务器,.net mvc 使用盛派Senparc.Weixin 上传图片接口

    wx.config({//debug: true, appId: '@ViewBag.AppId', timestamp:'@ViewBag.Timestamp', nonceStr:'@ViewBa ...

  2. 使用盛派Senparc SDK微信开发

    毕业后一直在写Web,主要写微信端现在所用盛派的SDK开发效率挺快的推荐一下. Senaprc.Weixin SDK 是目前使用率最高的微信 .NET SDK,也是最受欢迎的 .NET 开源项目之一. ...

  3. 前端怎么做接口签名验证 -baijiahao_微信H5介绍:Razor+Mvc+盛派微信接口

    01 微信H5 介绍 介绍一个.NET Mvc下开发微信H5的案例,这个是2年前找了一个封装比较简洁友好的一个Demo,开发环境是Razor+mvc+盛派接口,当然前提是你首先要熟悉微信开放平台以及微 ...

  4. 使用盛派微信SDK(Senparc.Weixin.MP)设计公众号被动回复API不返回信息问题

    研究了一晚上,终于找到原因了,这坑挖的真是害人不浅 不能收到回复的原因为两点: 1. 盛派官方的sdk例子根本是错误的,post请求也必须传参而不是使用盛派的model 2.返回结果要用Content ...

  5. 基于SENPARC盛派微信sdk的.net WebService微信公众号的相关开发(包含从零开始本机测试环境搭建//token验证//获取微信推送消息//向微信推送消息)

    前言: 由于微信公众号正式号,一直在被使用,所以在研发的时候,本机测试环境,就显得非常重要. 而且在自己闲暇之余,可以自己尝试更深程度的微信公众号的研发工作. 1.首先,必要的网站 http://sd ...

  6. 使用Senparc.Weixin SDK搭建微信公众号服务程序

    之前学过一些关于微信公众号二次开发的教程,偶然的机会接触了Senparc.Weixin SDK,确实是不错的框架,所以想着按照http://www.cnblogs.com/szw/archive/20 ...

  7. 公众号开发(2) —— 盛派.net SDK + vue搭建微信公众号网页开发框架

    需求:通过微信公众号菜单跳转到手机端网页,跳转后通过微信授权登录获取微信公众号用户的OpenId(用户关注公众号后,用户在公众号的唯一凭证),通过OpenId和后台数据库用户信息绑定起来并实现一些业务 ...

  8. Senparc.Weixin.MP SDK 微信公众平台开发教程(九):自定义菜单接口说明

    Senparc.Weixin.MP SDK 微信公众平台开发教程(九):自定义菜单接口说明 原文:Senparc.Weixin.MP SDK 微信公众平台开发教程(九):自定义菜单接口说明 上一篇&l ...

  9. 周三晚6点半!盛派首席架构师“苏老师”在线解密内部系统框架!

    工作中有些事, 看起来只用一会会儿就能完成, 但真正完成起来, 总会遇到一些意想不到的困难! 你一定碰到过这样的情况-- 开发时间 2 周的项目,搭框架就要用 1 周, 刚开发完,各种调试和修 bug ...

最新文章

  1. 开课吧python好吗-开课吧9.9元学Python课程适合哪些人?开课吧靠谱吗?
  2. 黑马程序员——c语言学习心得——函数传递二维数组
  3. DevExpress组件之——TreeList组件
  4. linux内核 RCU机制概述
  5. Android使用ViewPager+PhotoView实现图片查看器
  6. 【超详细教程】如何使用TypeScript和GraphQL开发应用
  7. 帮助用户进行日常健康管理,常仁科技完成1亿元A轮融资
  8. 《JAVA与模式》— 原型模式
  9. AD20如何自定义BOM模板?Altium Designer20 实用技巧系列教程(五)
  10. 揭秘淘宝286亿海量图片存储与处理架构(转)
  11. 前端vue几款模板介绍
  12. 《SpringBoot2.0 实战》系列-整合thymeleaf 实现模板文件转word打印
  13. 【Unity】消消乐游戏开发流程
  14. axios 官方指南翻译
  15. Warning: Function components cannot be given refs
  16. ccf试题1:最大波动
  17. 免费ARP(gratuitous ARP)简介
  18. [10]simpleITK读取dcm格式维度变化
  19. SSM+工业关键设备监测运维系统 毕业设计-附源码191400
  20. office2019 图目录_美工被主管要求:这个PS抠图插件可节省10小时,技术再好有什么用...

热门文章

  1. 如何做好水库大坝安全监测?
  2. 接口调用简单、多平台支持的RTSP-Server组件EasyRTSPServer如何修正多网卡多IP情况下解码器不能解码显示问题
  3. CSC改派+延期|影像学医生赴英国伦敦国王学院从事访学研究
  4. 固体物理 2022.10.4
  5. 在matlab中转换图像为矩阵
  6. 【八皇后】给定一个大小为 n 的正方形国际象棋棋盘,求有多少种方式可以放置 n 个皇后并使得她们互不攻击,即每一行、列、左斜、右斜最多只有一个皇后。
  7. 【区块链】Tendermint——实体结构
  8. 作为产品经理,我竟不知道企业微信的转化套路有这么野?!
  9. hive导出csv乱码
  10. OracleDBConsoleorcl 服务无法启动:Agent process exited abnormally during initialization.