JSSDK调用微信原生的功能上传图片保存到自己的服务器中

第一件事首先是微信的选择图片功能,就是微信发朋友圈选择图片的时候那个界面

复制代码
//调用微信拍照功能
                                    wx.chooseImage({
                                        count: 1, // 默认9
                                        sizeType: ['original', 'compressed'], //原图-压缩图
                                        sourceType: ['album', 'camera'], //指定来源是相册还是相机
                                        success: function (res) {
                                            let localIds = res.localIds;
                                            syncUpload(localIds);
                                        }
                                    });
复制代码

其中syncUpload函数功能为上传图片到微信服务器中

复制代码
var syncUpload = function (localIds) {
                var localId = localIds.pop();
                //上传图片
                wx.uploadImage({
                    localId: localId,
                    isShowProgressTips: 1,
                    success: function (res) {
                        // 返回图片的服务器端ID
                        var serverId = res.serverId; 
                        $.ajax({
                            url: "",
                            data: { media_id: serverId },
                            success: function (data) {
                                alert("你的图片路径地址是:" + data);
                            }, erro: function (erro) { alert(erro); }
                        })
                    }
                });
            };
复制代码

中间空着的url地址则是自己的后台处理这个事件的地址

我使用的是C# ,处理代码如下

复制代码
 if (Request["media_id"]!=null)
    {
      string media_id = Request["media_id"].ToString();
      string url = "http://file.api.weixin.qq.com/cgi-bin/media/get?access_token="+ wxHelper2.access_token+ "&media_id="+ media_id;     
      var result = new WebClient();
      result.DownloadFile(url, Server.MapPath("/upload/WxImg_" + media_id+".jpg"));
      string savePath = Server.MapPath("/upload/WxImg_" + media_id + ".jpg");
      Response.Write(savePath);
      Response.End();
    }
复制代码

这样就可以保存了

posted @   君宁天下  阅读(3258)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
野生程序员真的是太难了,一刻也不敢停止学习
点击右上角即可分享
微信分享提示