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

时间:2024-10-12 15:05:01

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

//调用微信拍照功能
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();
}

这样就可以保存了