- 发布:2021-09-30 11:52
- 更新:2023-09-01 15:31
- 阅读:2801
【报Bug】uni.uploadFile在不上传图片时,报TypeError: Cannot read property 'indexOf' of undefined
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: 10
手机系统: 全部
手机厂商: 华为
页面类型: vue
打包方式: 云端
项目创建方式: CLI
CLI版本号: 2.0.0-32920210927001
测试过的手机:
示例代码:
uni.uploadFile({
url: configUrl.API_HOST + '/csoi/pm/app/elevationPile/designDatas',
files: images,
fileType: 'image',
formData: this.formValue,
name: 'file',
header: {
'Content-Type': 'multipart/form-data',
Authorization: 'Bearer' + ' ' + token
},
success: uploadFileRes => {}
});
uni.uploadFile({
url: configUrl.API_HOST + '/csoi/pm/app/elevationPile/designDatas',
files: images,
fileType: 'image',
formData: this.formValue,
name: 'file',
header: {
'Content-Type': 'multipart/form-data',
Authorization: 'Bearer' + ' ' + token
},
success: uploadFileRes => {}
});
操作步骤:
formData正常上传,不上传图片就会报错
formData正常上传,不上传图片就会报错
预期结果:
uni.uploadFile在上传图片和不上传图片时都应该像之前的版本一样不报错
uni.uploadFile在上传图片和不上传图片时都应该像之前的版本一样不报错
实际结果:
新版本不传图片会报错Cannot read property 'indexOf' of undefined;
新版本不传图片会报错Cannot read property 'indexOf' of undefined;
bug描述:
uni.uploadFile在不上传图片时,报TypeError: Cannot read property 'indexOf' of undefined;
因业务需要,用户上传数据,图片不是必选项,当用户上数据上传一张或以上,能正常上传,但是当用户不上传图片时,uni.uploadFile会报Cannot read property 'indexOf' of undefined,这种情况是我今天更新了hbx和cli出现的。在更新之前,用户不上传照片是不会报错的。麻烦官方看下,是不是升级出了错误,具体代码如下
uni.uploadFile({
url: configUrl.API_HOST + '/csoi/pm/app/elevationPile/designDatas',
files: images,
fileType: 'image',
formData: this.formValue,
name: 'file',
header: {
'Content-Type': 'multipart/form-data',
Authorization: 'Bearer' + ' ' + token
},
success: uploadFileRes => {}
});
其中images数据在有图片时格式为:[{
"name": "img0",
"uri": "_doc/uniapp_temp_1632973493543/camera/1632973805767.jpg"
}, {
"name": "img1",
"uri": "_doc/uniapp_temp_1632973493543/camera/1632973810330.jpg"
}]
无图片格式为:[{"uri":"","name":""}]
谭小谭 (作者) - 90后前端
这不是文档上写的,非必传啊,而且未升级之前,确实是非必传啊,我线上一直在用,这次升级了,就不行了
-
谭小谭 (作者)
回复 DCloud_UNI_GSQ: 我代码一直都没用filePath哦,直接用的files。我之前主分支的SDK版本为:1.9.9.80859,现在线上都在用,没有问题的。我后面建了个新分支,npm update,并且重新下载了依赖包,就不行了,uni.uploadFile这个方法不传图片就要报错,我自身的业务代码都是没变的,所以我很奇怪为啥升级了,不传图片反而不行了,不科学啊
2021-09-30 15:41
-
谭小谭 (作者)
回复 DCloud_UNI_GSQ: 而且,现在新分支上,我也没用filePath ,只是不传图片会报错,传了图片也是不会报错的,所以和filePath 应该没太大关系吧
2021-09-30 15:42
-
回复 谭小谭: 问:为什么不传不行?答:设计上是必传的。问:为什么之前好的现在不行?答:初期实现可能有不严谨的地方后续实现和设计更接近了。问:后续可能会修改成非必传吗?答:有可能,不过优先级不高,毕竟跨平台兼容性不佳。问:现在怎么处理?答: 无文件时改用方式比如 request 等。
2021-10-08 12:00
-
回复 DCloud_UNI_GSQ: 我也遇到了这个问题h5可以上传成功,但是app用uni.uploadfile就提示‘TypeError: Cannot read property 'indexOf' of undefined’,传了filePath 也没有用
2022-08-01 16:11
谭小谭 (作者)
问题一是,我在没更新之前都可以不传呢,而且文档files也是说的非必穿啊,问题二,我业务一个form表单,图片本来就是非必传啊,files非必传更灵活一些啊,不然用户不传图片的时候,我还得另外调一次接口?怎么越升级越不好用了啊
2021-09-30 14:59
DCloud_UNI_GSQ
回复 谭小谭: 一直未改动,文件上传接口必须上传文件。
2021-09-30 15:10
谭小谭 (作者)
回复 DCloud_UNI_GSQ: 我上传了个附件,你看下呢
2021-09-30 15:17