uni-app uploadfile:多文件上传在app端为何报错?
uni-app uploadfile:多文件上传在app端为何报错?
示例代码:
files = files.map((item, index) => {
return {
name: "files",
url: item.url,
// #ifdef H5
file: item.file,
// #endif
}
})
try{
uni.uploadFile({
url,
files,
formData,
success: res => {
}
);
}catch(e){
// TypeError: Cannot read property 'indexOf' of undefined.
console.log(e)
}
更多关于uni-app uploadfile:多文件上传在app端为何报错?的实战教程也可以访问 https://www.itying.com/category-93-b0.html
2 回复
好吧,我自己查出来了。
官方文档是uri,我看成了url。我艹
更多关于uni-app uploadfile:多文件上传在app端为何报错?的实战教程也可以访问 https://www.itying.com/category-93-b0.html
在App端使用uni.uploadFile进行多文件上传时,报错TypeError: Cannot read property 'indexOf' of undefined通常是由于文件参数格式问题导致的。
关键点在于App端与H5端的文件参数差异:
- App端不支持直接传递file对象,只能使用文件路径(url)
- 你的代码中使用了条件编译,但在App端仍然可能传入了不支持的参数
建议修改方案:
// 统一处理文件参数,仅保留App端支持的格式
files = files.map((item) => {
return {
name: "files",
url: item.url // App端只需要url参数
}
})
// 确保formData不为undefined
const formData = formData || {}
uni.uploadFile({
url,
files,
formData,
success: (res) => {
console.log('上传成功', res)
},
fail: (error) => {
console.error('上传失败', error)
}
})

