Vistar
Vistar
  • 发布:2019-12-03 15:10
  • 更新:2020-08-21 09:50
  • 阅读:3476

uni.upload多文件上传测试180次均无法成功

分类:uni-app

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多个路径始终走不通,得让后台配合把多文件接口改为单文件接口一对一传输才行。

这就是最终解决方案了。

0 关注 分享

要回复文章请先登录注册

7***@qq.com

7***@qq.com

+1+1
2020-08-21 09:50