uni-app实现多文件上传

  前端上传文件到后台应该是个很常见的需求,相信很多小伙伴儿能很轻松的实现,今儿记录哈在uni-app 在做该功能时所遇到的一些问题~,看似简单的需求确隐藏了一些大坑,特此记录

这里用uni-app官网自带的方法 :uni.uploadFile(OBJECT)
方法使用官网介绍的很详细,上传单个文件的就不介绍了,主要看看下如何在一次http请求中上传多组文件的,文档说的很清楚,多组上传参数使用files,如下图,
注:这个参数只支持App和H5,小程序不支持的(一定要仔细看文档…
在这里插入图片描述
1、看看参数files是个什么,如图所示
在这放大发里插入图片描述
可以看到首先它是一个数组,数组中是个对象,对象有3个属性(name,file,uri).
上图中红色框内的就是本文重点说的两大坑。
坑1:file对象中虽表明name不是必传字段,但它是multipart提交时表单的名字,就是表单传到后端的参数名字,是需要与后台接收这个表单参数名一致的,默认为file,如果后台接口参数名不是file,请求报错400~,所以这个name必传且与后台接口参数名一致。
坑2:方法返参,看到回调success中data是一个
字符串
,并不是一个json对象,不能直接取值,所以这里需要用JSON.pase()方法来转换一下。
下面上代码截图:
前端:

在这里插入图片描述
在这里插入图片描述

后台:
在这里插入图片描述

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
uni-app中,你可以使用uni.uploadFile方法来上传多个文件。首先,你需要将需要上传文件逐个进行遍历,并通过uni.uploadFile方法进行上传。 以下是一个示例代码: ```javascript // 定义一个数组,用于存储上传成功的文件路径 let uploadedFiles = []; // 遍历需要上传文件列表 for (let i = 0; i < fileList.length; i++) { let file = fileList[i]; // 使用uni.uploadFile方法进行文件上传 uni.uploadFile({ url: 'your_upload_url', // 替换为实际的上传接口地址 filePath: file.path, // 文件路径 name: 'file', // 对应后端接口中接收文件的字段名 formData: { // 其他参数 }, success: (res) => { // 上传成功,返回的数据在res.data中,可以根据需要进行处理 uploadedFiles.push(res.data); // 如果所有文件上传完成 if (uploadedFiles.length === fileList.length) { // 所有文件上传完成后的操作 console.log('所有文件上传完成'); console.log(uploadedFiles); } }, fail: (err) => { // 上传失败的处理逻辑 console.log('文件上传失败'); console.log(err); } }); } ``` 上述代码中,fileList是一个包含需要上传文件信息的数组,可以根据具体需求进行修改。在每次上传成功后,将返回的文件路径存储到uploadedFiles数组中。当所有文件上传完成后,可以在相应的位置进行处理。 请注意替换代码中的'your_upload_url'为实际的上传接口地址,并根据后端接口要求修改其他参数。 希望对你有所帮助!如果你还有其他问题,请继续提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值