.net mvc 使用盛派Senparc.Weixin 上传图片接口
首先获取微信签名,Controller代码:
![](/assets/blank.gif)
![](/assets/blank.gif)
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
视图代码:
![](/assets/blank.gif)
![](/assets/blank.gif)
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
图片保存到本地服务器方法:
![](/assets/blank.gif)
![](/assets/blank.gif)
/// <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 上传图片接口相关推荐
- 微信mvc上传图片到服务器,.net mvc 使用盛派Senparc.Weixin 上传图片接口
wx.config({//debug: true, appId: '@ViewBag.AppId', timestamp:'@ViewBag.Timestamp', nonceStr:'@ViewBa ...
- 使用盛派Senparc SDK微信开发
毕业后一直在写Web,主要写微信端现在所用盛派的SDK开发效率挺快的推荐一下. Senaprc.Weixin SDK 是目前使用率最高的微信 .NET SDK,也是最受欢迎的 .NET 开源项目之一. ...
- 前端怎么做接口签名验证 -baijiahao_微信H5介绍:Razor+Mvc+盛派微信接口
01 微信H5 介绍 介绍一个.NET Mvc下开发微信H5的案例,这个是2年前找了一个封装比较简洁友好的一个Demo,开发环境是Razor+mvc+盛派接口,当然前提是你首先要熟悉微信开放平台以及微 ...
- 使用盛派微信SDK(Senparc.Weixin.MP)设计公众号被动回复API不返回信息问题
研究了一晚上,终于找到原因了,这坑挖的真是害人不浅 不能收到回复的原因为两点: 1. 盛派官方的sdk例子根本是错误的,post请求也必须传参而不是使用盛派的model 2.返回结果要用Content ...
- 基于SENPARC盛派微信sdk的.net WebService微信公众号的相关开发(包含从零开始本机测试环境搭建//token验证//获取微信推送消息//向微信推送消息)
前言: 由于微信公众号正式号,一直在被使用,所以在研发的时候,本机测试环境,就显得非常重要. 而且在自己闲暇之余,可以自己尝试更深程度的微信公众号的研发工作. 1.首先,必要的网站 http://sd ...
- 使用Senparc.Weixin SDK搭建微信公众号服务程序
之前学过一些关于微信公众号二次开发的教程,偶然的机会接触了Senparc.Weixin SDK,确实是不错的框架,所以想着按照http://www.cnblogs.com/szw/archive/20 ...
- 公众号开发(2) —— 盛派.net SDK + vue搭建微信公众号网页开发框架
需求:通过微信公众号菜单跳转到手机端网页,跳转后通过微信授权登录获取微信公众号用户的OpenId(用户关注公众号后,用户在公众号的唯一凭证),通过OpenId和后台数据库用户信息绑定起来并实现一些业务 ...
- Senparc.Weixin.MP SDK 微信公众平台开发教程(九):自定义菜单接口说明
Senparc.Weixin.MP SDK 微信公众平台开发教程(九):自定义菜单接口说明 原文:Senparc.Weixin.MP SDK 微信公众平台开发教程(九):自定义菜单接口说明 上一篇&l ...
- 周三晚6点半!盛派首席架构师“苏老师”在线解密内部系统框架!
工作中有些事, 看起来只用一会会儿就能完成, 但真正完成起来, 总会遇到一些意想不到的困难! 你一定碰到过这样的情况-- 开发时间 2 周的项目,搭框架就要用 1 周, 刚开发完,各种调试和修 bug ...
最新文章
- 开课吧python好吗-开课吧9.9元学Python课程适合哪些人?开课吧靠谱吗?
- 黑马程序员——c语言学习心得——函数传递二维数组
- DevExpress组件之——TreeList组件
- linux内核 RCU机制概述
- Android使用ViewPager+PhotoView实现图片查看器
- 【超详细教程】如何使用TypeScript和GraphQL开发应用
- 帮助用户进行日常健康管理,常仁科技完成1亿元A轮融资
- 《JAVA与模式》— 原型模式
- AD20如何自定义BOM模板?Altium Designer20 实用技巧系列教程(五)
- 揭秘淘宝286亿海量图片存储与处理架构(转)
- 前端vue几款模板介绍
- 《SpringBoot2.0 实战》系列-整合thymeleaf 实现模板文件转word打印
- 【Unity】消消乐游戏开发流程
- axios 官方指南翻译
- Warning: Function components cannot be given refs
- ccf试题1:最大波动
- 免费ARP(gratuitous ARP)简介
- [10]simpleITK读取dcm格式维度变化
- SSM+工业关键设备监测运维系统 毕业设计-附源码191400
- office2019 图目录_美工被主管要求:这个PS抠图插件可节省10小时,技术再好有什么用...
热门文章
- 如何做好水库大坝安全监测?
- 接口调用简单、多平台支持的RTSP-Server组件EasyRTSPServer如何修正多网卡多IP情况下解码器不能解码显示问题
- CSC改派+延期|影像学医生赴英国伦敦国王学院从事访学研究
- 固体物理 2022.10.4
- 在matlab中转换图像为矩阵
- 【八皇后】给定一个大小为 n 的正方形国际象棋棋盘,求有多少种方式可以放置 n 个皇后并使得她们互不攻击,即每一行、列、左斜、右斜最多只有一个皇后。
- 【区块链】Tendermint——实体结构
- 作为产品经理,我竟不知道企业微信的转化套路有这么野?!
- hive导出csv乱码
- OracleDBConsoleorcl 服务无法启动:Agent process exited abnormally during initialization.