<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
        主站蜘蛛池模板: 国产自国产自愉自愉免费24区 | 理论亚洲区美一区二区三区| 57PAO成人国产永久免费视频| 亚洲AV永久无码区成人网站| 热99RE久久精品这里都是精品免费| 亚洲深深色噜噜狠狠爱网站| 99在线免费视频| 亚洲av无码乱码国产精品fc2 | 鲁啊鲁在线视频免费播放| 热久久精品免费视频| 国产精品亚洲专区无码牛牛 | 国产美女精品视频免费观看| 青草青草视频2免费观看| 国产成人精品曰本亚洲79ren| 国产日韩久久免费影院| 亚洲av色影在线| 免费能直接在线观看黄的视频 | 一级成人生活片免费看| 久久久久久a亚洲欧洲AV| 2020久久精品国产免费| 欧美亚洲精品一区二区| 国产精品亚洲mnbav网站| 另类免费视频一区二区在线观看| 亚洲欧洲另类春色校园小说| 色视频色露露永久免费观看| 九九免费精品视频在这里| 亚洲精品无码MV在线观看| 亚洲无砖砖区免费| 成人亚洲国产精品久久| 亚洲精品无码鲁网中文电影| 美女内射毛片在线看免费人动物| 亚洲国产成人久久精品大牛影视| 亚洲精品第一国产综合境外资源 | 伊人免费在线观看高清版| 亚洲精品一区二区三区四区乱码| 嫩草影院在线免费观看| 久久免费99精品国产自在现线| 亚洲电影免费观看| 亚洲精品成人片在线观看| 一色屋成人免费精品网站| 人妻18毛片a级毛片免费看|