<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        JS開發(fā)微信公眾號上傳圖片到本地服務(wù)器

        來源:懂視網(wǎng) 責編:小采 時間:2020-11-27 19:59:46
        文檔

        JS開發(fā)微信公眾號上傳圖片到本地服務(wù)器

        JS開發(fā)微信公眾號上傳圖片到本地服務(wù)器:微信公眾號開發(fā)中一般會涉及到在手機公眾號程序中選擇本地圖片或者拍照,將圖片上傳到本地后臺服務(wù)器的功能,網(wǎng)上的做法一般是調(diào)用微信官方提供的chooseImage方法,再判斷是android還是ios并且是否使用WKWebview內(nèi)核,最后再分別處理返回值將之轉(zhuǎn)為base6
        推薦度:
        導讀JS開發(fā)微信公眾號上傳圖片到本地服務(wù)器:微信公眾號開發(fā)中一般會涉及到在手機公眾號程序中選擇本地圖片或者拍照,將圖片上傳到本地后臺服務(wù)器的功能,網(wǎng)上的做法一般是調(diào)用微信官方提供的chooseImage方法,再判斷是android還是ios并且是否使用WKWebview內(nèi)核,最后再分別處理返回值將之轉(zhuǎn)為base6

        微信公眾號開發(fā)中一般會涉及到在手機公眾號程序中選擇本地圖片或者拍照,將圖片上傳到本地后臺服務(wù)器的功能,網(wǎng)上的做法一般是調(diào)用微信官方提供的chooseImage方法,再判斷是android還是ios并且是否使用WKWebview內(nèi)核,最后再分別處理返回值將之轉(zhuǎn)為base64編碼的數(shù)據(jù),再上傳到服務(wù)器上。

        這種辦法的難點在于需要判斷系統(tǒng),并且對微信返回的數(shù)據(jù)進行base64編碼,然后在服務(wù)器端還得寫base64解碼的邏輯,本文不使用通用的做法,而是采用先上傳到微信服務(wù)器,再到后臺服務(wù)器端從微信服務(wù)器下載回來保存到文件服務(wù)器。具體代碼如下:

        1、頁面

        <input type="button" id="uploadBtn">

        頁面上只有一個普通的button的上傳按鈕

        2、js邏輯

        $('#uploadBtn').click(function () {
        	wx.chooseImage({
        	count: 1,
        	sizeType: ['original', 'compressed'], // 可以指定是原圖還是壓縮圖,默認二者都有
        	sourceType: ['album', 'camera'], // 可以指定來源是相冊還是相機,默認二者都有
        	success: function (res) {
        	var localIds = res.localIds; // 返回選定照片的本地ID列表,localId可以作為img標簽的src屬性顯示圖片
        	that.uploadImg(localIds[0]);
        	}
        	});
        });
        
        //具體上傳圖片
        uploadImg: function (e) {
        	wx.uploadImage({
        	localId: e, // 需要上傳的圖片的本地ID,由chooseImage接口獲得
        	isShowProgressTips: 1, // 默認為1,顯示進度提示
        	success: function (res) {
        	serverId = res.serverId;
        	$.ajax({
        	url: "/uploadImg",
        	dataType: "json",
        	async: false,
        	contentType: "application/x-www-form-urlencoded; charset=UTF-8",
        	data: {"mediaId": serverId},
        	type: "POST",
        	timeout: 30000,
        	success: function (data, textStatus) {
        	$('#imgUrl').val(data);
        	$.toast('上傳成功', 'text');
        	},
        	error: function (XMLHttpRequest, textStatus, errorThrown) {
        	$.toast('上傳錯誤,請稍候重試!', 'text');
        	}
        	});
        	},
        	fail: function (error) {
        	$.toast('上傳錯誤,請稍候重試!', 'text');
        	}
        	});
        }

        先調(diào)用wx.chooseImage方法來選擇圖片,然后將結(jié)果再調(diào)用上傳圖片的方法wx.uploadImage,拿到上傳成功的返回值就是mediaId,再調(diào)用我們自己寫的服務(wù)器端的controller方法將mediaId通過ajax提交過去,接下來就是服務(wù)器端的代碼。

        3、服務(wù)器端處理邏輯

        /**
         * 獲取臨時素材
         *
         * @param mediaId 媒體文件ID
         * @return 正確返回附件對象,否則返回null
         * @throws WeixinException
         */
         public Attachment downloadMedia(String mediaId) throws WeixinException {
         //下載資源
         String url = "https://api.weixin.qq.com/cgi-bin/media/get?access_token=" + this.oauthToken.getAccess_token() + "&media_id=" + mediaId;
         //創(chuàng)建請求對象
         HttpsClient http = new HttpsClient();
         return http.downloadHttps(url);
         }
         
        其中Attachment表示下載文件返回值對象,包含的屬性有:
        public class Attachment {
        
         private String fileName;
         private String fullName;
         private String suffix;
         private String contentLength;
         private String contentType;
         private BufferedInputStream fileStream;
         private String error;
         
         省略get/set方法
        }

        調(diào)用downloadMedia方法之后獲取Attachment對象,主要就是對BufferedInputStream對象的fileStream來進行處理,這個屬性就是圖片文件流,保存文件流到本地就有很多的方法,可以使用apache提供的FileUtils類來處理,這里就不提供具體的代碼了,網(wǎng)上很多類似的。至此我們就已經(jīng)成功的實現(xiàn)在微信公眾號上上傳圖片到本地服務(wù)器了。

        聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        JS開發(fā)微信公眾號上傳圖片到本地服務(wù)器

        JS開發(fā)微信公眾號上傳圖片到本地服務(wù)器:微信公眾號開發(fā)中一般會涉及到在手機公眾號程序中選擇本地圖片或者拍照,將圖片上傳到本地后臺服務(wù)器的功能,網(wǎng)上的做法一般是調(diào)用微信官方提供的chooseImage方法,再判斷是android還是ios并且是否使用WKWebview內(nèi)核,最后再分別處理返回值將之轉(zhuǎn)為base6
        推薦度:
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 好先生在线观看免费播放| 日韩电影免费在线观看| 久久精品a一国产成人免费网站| 久久综合亚洲鲁鲁五月天| 99国产精品免费视频观看| 久久亚洲精品无码aⅴ大香| 99久久精品免费精品国产| 91在线亚洲精品专区| 99re在线精品视频免费| 亚洲综合综合在线| 成人毛片免费观看视频| 亚洲AV永久无码精品一福利| 免费一级肉体全黄毛片| 精品一区二区三区免费观看 | 免费黄色app网站| 粉色视频在线观看www免费| 免费人成年轻人电影| 中国一级全黄的免费观看| 久久亚洲国产视频| 国产99视频精品免费观看7| 亚洲欧美日韩中文二区| 亚洲国产成人a精品不卡在线| 久久国产精品免费一区| 亚洲黄色免费电影| 精品国产精品久久一区免费式| 人妻无码中文字幕免费视频蜜桃| 国产精品亚洲а∨无码播放| 美丽的姑娘免费观看在线播放 | 老汉精品免费AV在线播放| 亚洲人成网男女大片在线播放| 国产成人免费一区二区三区| 岛国精品一区免费视频在线观看| 亚洲精品自拍视频| 国产一级淫片免费播放| 久久国产精品免费专区| 久久亚洲中文无码咪咪爱| 亚洲国产精品嫩草影院在线观看| 国产无人区码卡二卡三卡免费 | 亚洲一区二区三区亚瑟| 国产亚洲综合久久系列| 免费福利在线播放|