uni-app 開發(fā)過程中,發(fā)現(xiàn)上傳功能在小程序端報錯:uploadFile:fail parameter error: parameter.filePat…meter.name should be String instead of Undefined
。
查看 uni.uploadFile(options) 文檔,是在傳輸參數(shù)格式出現(xiàn)了錯誤。
按照官方文檔配置如下即可:
uni.chooseImage({
count: 1, //count 值在 H5 平臺的表現(xiàn),基于瀏覽器本身的規(guī)范。目前測試的結(jié)果來看,只能限制單選/多選,并不能限制數(shù)量。并且,在實際的手機瀏覽器很少有能夠支持多選的。
sizeType: 'compressed', // original 原圖,compressed 壓縮圖,默認二者都有
success: async function(res) {
let paths = res.tempFilePaths // 選擇的文件路徑列表
let files = res.tempFiles // 選擇的文件列表
files = files.map(item=>{ // 更改為 uni.uploadFile files需要的數(shù)據(jù)結(jié)構(gòu)
return {
uri: item
}
})
uni.uploadFile({
url: baseUrl + url , // 上傳服務(wù)后臺路徑,請自行替換
header: {
'token': uni.getStorageSync("token"),
// 'content-type':'multipart/form-data' // 則以 formData 方式傳參
}, // 可以加access_token等
// filePath: paths[0], // 要上傳文件資源的路徑,與下面files傳參方式選其一
files: files, //需要上傳的文件列表。
success: (res)=>{
console.log('uploadFile success',res)
}
})
}
});
H5正常如下:
小程序如下:
參考了一下別人的說法,好像是微信小程序不支持以 files 多項上傳,但是我用 filePath 傳輸也不行。因此我直接使用 uni-app 條件編譯 ,在小程序端使用 wx.uploadFile(Object object)。文章來源:http://www.zghlxwxcb.cn/news/detail-752801.html
最終解決代碼如下:文章來源地址http://www.zghlxwxcb.cn/news/detail-752801.html
uni.chooseImage({
count: 1, //count 值在 H5 平臺的表現(xiàn),基于瀏覽器本身的規(guī)范。目前測試的結(jié)果來看,只能限制單選/多選,并不能限制數(shù)量。并且,在實際的手機瀏覽器很少有能夠支持多選的。
sizeType: 'compressed', // original 原圖,compressed 壓縮圖,默認二者都有
success: async function(res) {
let paths = res.tempFilePaths // 選擇的文件路徑列表
let files = res.tempFiles // 選擇的文件列表
files = files.map(item=>{ // 更改為 uni.uploadFile files需要的數(shù)據(jù)結(jié)構(gòu)
return {
uri: item
}
})
// #ifdef MP-WEIXIN
wx.uploadFile({
url: baseUrl + url ,// 上傳服務(wù)后臺路徑,請自行替換
header: {
'token': uni.getStorageSync("token")
}, // 可以加access_token等
name: 'file',
filePath: paths[0], // 要上傳文件資源的路徑,與下面files傳參方式選其一
// files: files, //需要上傳的文件列表。
success: (res)=>{
console.log('uploadFile success',res)
}
})
// #endif
// #ifdef H5
uni.uploadFile({
url: baseUrl + url ,// 上傳服務(wù)后臺路徑,請自行替換
header: {
'token': uni.getStorageSync("token")
}, // 可以加access_token等
name: 'file',
filePath: paths[0], // 要上傳文件資源的路徑,與下面files傳參方式選其一
// files: files, //需要上傳的文件列表。
success: (res)=>{
console.log('uploadFile success',res)
}
})
// #endif
}
});
到了這里,關(guān)于uni-app 小程序上傳圖片報錯:uploadFile:fail parameter error: parameter.filePat…meter.name should be...的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!