uniapp基礎(chǔ)篇之上傳圖片的實戰(zhàn)步驟
一、今日學(xué)習(xí)目標(biāo)
實現(xiàn)uniapp上傳圖片
二、實戰(zhàn)步驟
1. 了解uni.chooseImage(OBJECT)
特別說明下crop
參數(shù),是圖像裁剪的參數(shù)
// uni.chooseImage() 基本示例 uni.chooseImage({ count: 6, //默認(rèn)9 sizeType: ['original', 'compressed'], //可以指定是原圖還是壓縮圖,默認(rèn)二者都有 sourceType: ['album'], //從相冊選擇 success: function (res) { console.log(JSON.stringify(res.tempFilePaths)); } });
使用注意事項:
- count 值在 H5 平臺的表現(xiàn),基于瀏覽器本身的規(guī)范。目前測試的結(jié)果來看,只能限制單選/多選,并不能限制數(shù)量。并且,在實際的手機瀏覽器很少有能夠支持多選的。
- sourceType 值在 H5 平臺根據(jù)瀏覽器的不同而表現(xiàn)不同,一般不可限制僅使用相冊,部分瀏覽器也無法限制是否使用相機。
2. 了解uni.uploadFile(OBJECT)
介紹:將本地資源上傳到開發(fā)者服務(wù)器,客戶端發(fā)起一個 POST 請求,其中 content-type 為 multipart/form-data
// 示例代碼 uni.chooseImage({ success: (chooseImageRes) => { const tempFilePaths = chooseImageRes.tempFilePaths; uni.uploadFile({ url: 'https://www.example.com/upload', //僅為示例,非真實的接口地址 filePath: tempFilePaths[0], name: 'file', formData: { 'user': 'test' }, success: (uploadFileRes) => { console.log(uploadFileRes.data); } }); } });
3. 在項目中上傳圖片
// 項目實戰(zhàn)中使用 uni.chooseImage({ count: 1, // 圖片數(shù)量 sizeType: ['original', 'compressed'], //可以指定是原圖還是壓縮圖,默認(rèn)二者都有 sourceType: ['album', 'camera'], //從相冊選擇或者拍照 success: (res) => { const tempFilePaths = res.tempFilePaths; console.log(tempFilePaths[0]) _this.logo_list = tempFilePaths[0] uni.uploadFile({ url: 'https://xx.com/center/group/icon', //上傳圖片api filePath: tempFilePaths[0], name: 'groupicon', header:{ "Authorization": userinfo.token }, success: (res) => { let group = JSON.parse(res.data) uni.showToast({ title:"上傳成功", icon:"success" }) } }); } });
圖片上傳進度監(jiān)聽 uploadTask()
在uniapp中上傳圖片,需要uni.chooseImage()和uni.uploadFile()這兩個api結(jié)合使用,才能完成圖片的上傳,還有一個
uploadTask(),
可以用來監(jiān)聽上傳進度變化事件,和取消上傳任務(wù)。我們根據(jù)項目需求去決定要不要添加這個監(jiān)聽行為。
// 示例 uploadTask.onProgressUpdate((res) => { console.log('上傳進度' + res.progress); console.log('已經(jīng)上傳的數(shù)據(jù)長度' + res.totalBytesSent); console.log('預(yù)期需要上傳的數(shù)據(jù)總長度' + res.totalBytesExpectedToSend); // 測試條件,取消上傳任務(wù)。 if (res.progress > 50) { uploadTask.abort(); } });
總結(jié)
到此這篇關(guān)于uniapp基礎(chǔ)篇之上傳圖片的文章就介紹到這了,更多相關(guān)uniapp上傳圖片內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
js檢測離開或刷新頁面時表單數(shù)據(jù)是否更改的方法
這篇文章主要介紹了js檢測離開或刷新頁面時表單數(shù)據(jù)是否更改的方法,涉及javascript表單操作及事件響應(yīng)的相關(guān)技巧,需要的朋友可以參考下2016-08-08在Js頁面通過POST傳遞參數(shù)跳轉(zhuǎn)到新頁面詳解
這篇文章主要給大家介紹了關(guān)于在Js頁面通過POST傳遞參數(shù)跳轉(zhuǎn)到新頁面的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-08-08js面向?qū)ο笾?、私有、靜態(tài)屬性和方法詳解
這篇文章主要詳細(xì)介紹了js面向?qū)ο笾小⑺接?、靜態(tài)屬性和方法,并附上詳細(xì)的示例,非常的細(xì)致全面,這里推薦給大家,有需要的小伙伴可以參考下2015-04-04