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, //默認9
sizeType: ['original', 'compressed'], //可以指定是原圖還是壓縮圖,默認二者都有
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'], //可以指定是原圖還是壓縮圖,默認二者都有
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)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-08-08
js面向?qū)ο笾?、私有、靜態(tài)屬性和方法詳解
這篇文章主要詳細介紹了js面向?qū)ο笾?、私有、靜態(tài)屬性和方法,并附上詳細的示例,非常的細致全面,這里推薦給大家,有需要的小伙伴可以參考下2015-04-04

