uni.upload多文件上传测试180次均无法成功
文章大纲
- 问题来源
- 思路分析
- 测试经过
- 最终解决方案
问题来源
项目为了实现图片和视频多文件上传
思路分析
为了实现图片和视频多文件上传功能,经过5天,180次测试,我沿用以下三个思路进行测试。
1、我首先采用的是uni.uploadFile插件。(尝试接近50次次数)
2、其次采用的方法是原生数据连接方法,XMLHTTPrequest方法,失败(从50-100次测试)
3、发现依然失效,于是采用H5Plus,upLoader的方法,从100-180次测试,依然无效。
我最终面对自我信心缺失和无力的情况下,找到突破口,让后端重写多文件上传的功能,通过单文件依次上传,实现多文件上传功能。
为了纪念180次,一周的辛苦,写下文章,以免其他程序员也遇到同样的问题,和我一样白白做无用功。趁早让后端改代码,多文件变成单文件是最快的方式。
测试经过
核心问题在于,用Postman测试多文件上传功能是OK的,但是前端用的语法却失去效果。
所以我首先用的是uni.upLoadFile插件,看uni.upLoadFile插件文档,自己是不是对文档哪里理解错误,对于这个接口是否正确使用,语法有没有写错。因为这时候的报错是upload File fail ,
| 参数名 | 类型 | 必填 | 说明| 平台差异说明 |
| files | Array | 否 |需要上传的文件列表。使用 files 时,filePath 和 name 不生效 | 5 App |
1-30次测试,比较POSTman和Uniapp参数是否不同。比如检查file格式,相对还是绝对路径
30-50次测试,检查是否和内网相关联,因为我们公司是内网开发环境,后来发现并没有关系。
50次后,采用原生XmlHttpRequest写,依然无效。
80次后,采用uploader,我实在是精疲力竭,已经连续3天加班,每天从早测到晚,每次测试都毫无结果。
重新分析
所以我开始分析程序哪里出了了问题,再次判断分析为以下三个问题。
是否接口问题?用POSTMAN排除了。
是否语法问题?测了20次,派出了语法问题
是否方法问题?检查了前面两条路,(uni.uploade和xmlHttpRequest)我都发现死磕失败,最终走向第三条路——uploader
第100-130次:
fail to construct 'File:Iterator setter is not callable
这句话测试了30次,才发现是代码多了一个构造器new File
第130-180次
Uploader可以检测到上传过程中的数据问题,我检测了其中的数据,发现是已经上传了数据,但是结果却是失败的。
最终解决方案
我在180次测试结束后发现,多文件上传用uniapp多个路径始终走不通,得让后台配合把多文件接口改为单文件接口一对一传输才行。
这就是最终解决方案了。
1 个评论
要回复文章请先登录或注册
7***@qq.com