微信は写真を撮ったり、携帯電話のアルバムから図を選んだりして、自分のサーバーにアップロードします.
H 5を作るには、微信で使い、画像をアップロードする機能を実現する必要があります.
微信公衆番号のjs-sdkを研究したところ、画像のアップロードを実現する2つの方法があることが分かった.選択ピクチャ+取得ピクチャ ピクチャ+アップロードピクチャ(serverIdに戻る)を選択し、フロントエンドがserverId(すなわちmedia_id)を取得すると、これをパラメータとしてバックグラウンドに「一時素材インタフェースの取得」 を要求する.
関連公式文書:微信js-sdk:https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html微信素材管理、仮素材取得:https://developers.weixin.qq.com/doc/offiaccount/Asset_Management/Get_temporary_materials.html
1.ピクチャの選択+base 64フォーマットピクチャの取得
2.ピクチャ+アップロードピクチャを選択(serverIdに戻る)
微信公衆番号のjs-sdkを研究したところ、画像のアップロードを実現する2つの方法があることが分かった.
関連公式文書:微信js-sdk:https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html微信素材管理、仮素材取得:https://developers.weixin.qq.com/doc/offiaccount/Asset_Management/Get_temporary_materials.html
1.ピクチャの選択+base 64フォーマットピクチャの取得
wx.chooseImage({
count: 1, // 9
sizeType: ['original', 'compressed'], // ,
sourceType: ['camera'], // ,
success: function (res) {
var localIds = res.localIds; // ID ,localId img src
var localId = localIds.pop();
wx.getLocalImgData({
localId: localId, // localID
success: function (res) {
var localData = res.localData; // localData base64 , img
that.onPhotoDataSuccess(localData);
}
});
}
});
onPhotoDataSuccess(imageData) {
Indicator.open();
let img = 'data:image/jpeg;base64,' + imageData;
// let img = 'data:image/png;base64,iVBORw0SUh...AABJRU5ErkJggg=='
let mime = img.split(',')[0].match(/:(.*?);/)[1];
let str = this.orderId + '-' + new Date().getTime() + '.' + mime.split('/')[1];
// file
let imgData = {
base64_image_content: encodeURIComponent(img),
name: str
}
this.$post('upload', imgData).then(res => {
let returnImg = res.data.file_url;
Indicator.close();
}).catch(err => {
Indicator.close();
Toast(err)
})
}
2.ピクチャ+アップロードピクチャを選択(serverIdに戻る)
wx.chooseImage({
count: 1, // 9
sizeType: ['original', 'compressed'], // ,
sourceType: ['album', 'camera'], // ,
success: function (res) {
var localIds = res.localIds; // ID ,localId img src
wx.uploadImage({
localId: localIds.pop(), // ID, chooseImage
isShowProgressTips: 1, // 1,
success: function (res) {
var serverId = res.serverId; // ID
// , serverId ,
}
});
}
});