微信JS-SDK上传多张照片
生活随笔
收集整理的這篇文章主要介紹了
微信JS-SDK上传多张照片
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
通過JS-SDK進(jìn)行操作的基本步驟包括:引用微信的JS、配置權(quán)限驗(yàn)證參數(shù)及使用的接口、通過ready及error驗(yàn)證配置及功能接口的使用等。如下以上傳圖片Demo為例進(jìn)行說
(1)引入JS及配置調(diào)用參數(shù)
<script src="https://res.wx.qq.com/open/js/jweixin-1.2.0.js"></script>
<script type="text/javascript">
wx.config({
debug: false, // 開啟調(diào)試模式,調(diào)用的所有api的返回值會(huì)在客戶端alert出來,若要查看傳入的參數(shù),可以在pc端打開,參數(shù)信息會(huì)通過log打出,僅在pc端時(shí)才會(huì)打印。
appId: '@CommonOperate.GetJsSdkUiPackage().AppId', // 必填,公眾號(hào)的唯一標(biāo)識(shí)
timestamp: @CommonOperate.GetJsSdkUiPackage().Timestamp, // 必填,生成簽名的時(shí)間戳
nonceStr: '@CommonOperate.GetJsSdkUiPackage().NonceStr', // 必填,生成簽名的隨機(jī)串
signature: '@CommonOperate.GetJsSdkUiPackage().Signature', // 必填,簽名
jsApiList: [ //必填,需要使用的JS接口列表,所有JS接口列表見附錄2
'checkJsApi',
'chooseImage',
'previewImage',
'uploadImage',
'downloadImage',
'getLocation',
'openLocation'
]
});
(2)通過chooseImage選取多張照片,選取成功后可獲得本地照片的ID集“res.localIds”
(3)點(diǎn)擊上傳時(shí)遍歷“res.localIds”分別調(diào)用uploadImage
可獲取“varserverId=res.serverId;”,此serverId對(duì)應(yīng)存儲(chǔ)在微信平臺(tái)里的唯一資源mediaId,將mediaIdPOST到后端可通過微信的接口獲取photostream再保存到本地或上傳到cloud
注意:如下需將流的當(dāng)前位置設(shè)置為0 stream.Position = 0;(否則會(huì)導(dǎo)致上傳到Azure等時(shí)會(huì)出現(xiàn)打不開的情況)
/// <summary>
/// 上傳微信照片
/// </summary>
/// <param name="repairId"></param>
/// <param name="mediaId"></param>
/// <returns></returns>
[HttpPost]
public JsonResult UploadWxImage(int repairId, string mediaId)
{
using (MemoryStream stream = new MemoryStream())
{
CommonOperate.GetMedia(mediaId, stream);
stream.Position = 0;
string localPath = Server.MapPath($"~/Content/{Guid.NewGuid()}.jpg");
try
{
System.Drawing.Image imgLocal = System.Drawing.Image.FromStream(stream);
imgLocal.Save(localPath);
}
參考:
JS-SDK
https://work.weixin.qq.com/api/doc
總結(jié)
以上是生活随笔為你收集整理的微信JS-SDK上传多张照片的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: RH850 中断相关
- 下一篇: 轻量级桌面 openbox + tint