UniApp文件上传(SpringBoot+Minio)

一、Uni文件上传

(1)、文件上传的问题

UniApp文件上传文档

 uni.uploadFile({url: 'https://www.example.com/upload', //仅为示例,非真实的接口地址files: 图片地址对象数组,formData: {'user': 'test'},success: (res) => {console.log(res.data);}});

官方给出得使用方法,但是。。。图片对象数组要以key-value存储
name = 文件名称,uri = 文件地址路径
这样就会有一个问题,后端无法用数组或集合取值,因为官方说如果name一样或者不写

那总不能写n个参数,后台用n个参数接把、很 cao单 的问题

(2)、解决思路

百度若干个小时,听了一堆一摸一样的屁话,找到一篇文章说 MultipartRequest,于是后台就用这个接参数,发现可以接到。

1、首先

uni拿到上传文件的图片地址数组对象,然后把他转成uni要求的key-value格式

 //把传过来的图片path数组转为指定格式var filelist = [];for (var i = 0; i < imgList.length; i++) {var obj = {};obj.name = "img" + i;obj.uri = imgList[i];filelist.push(obj)}

这样第一张图叫 img0 、、以此类推

2、发送请求

传给后端之前,告诉后端总共有几张图片要传过去

 uni.uploadFile({url: 'https://www.example.com/upload', //仅为示例,非真实的接口地址files: 上边的filelist,formData: {//图片张数'length': 上边的filelist.length},success: (res) => {console.log(res.data);}});

3、后端接参

上边说了,后端用MultipartRequest接收参数

    @PostMapping(value = "/upimg", headers = "content-type=multipart/form-data")@ApiOperation("多文件上传")public String upload(MultipartRequest request, Integer num) throws Exception {return Result.ok(this.MinioUtils.putObject(request, num));}

4、后端结合Minio的处理

上篇文章也说了 Minio 是怎么上传文件的

public List<String> putObject(MultipartRequest request, Integer num) throws Exception {if (num == null || num < 1) {throw new CustomizeException(ErrorCode.UP_IMAGE_NUM_IS_NULL);}// bucket 不存在,创建if (!minioClient.bucketExists(this.bucket)) {minioClient.makeBucket(this.bucket);}InputStream inputStream;//返回的图片地址数组List<String> imgList = new ArrayList<>();try {//循环多文件上传for (int i = 0; i < num; i++) {request.getFile("img" + i)//循环取文件并上传imgList.add(文件地址);}} catch (Exception ex) {throw new CustomizeException(ErrorCode.UP_IMAGE_ERROR);}return imgList;

5、uni处理返回结果

uni收到的返回结果是 String要做下处理才能使用

success: (res) => {JSON.parse(res.data);
}

二、文件上传的异步问题

uni的文件上传因为是异步,所以也要做些处理

export function upup(list) {//把传过来的图片path数组转为指定格式var filelist = [];for (var i = 0; i < list.length; i++) {var obj = {};obj.name = "img" + i;obj.uri = imgList[i];filelist.push(obj)}return new Promise((resolve, reject) => {//上传图片uni.uploadFile({url: 请求地址,files: filelist,formData: {'num': 图片张数},header: {"Content-Type": "multipart/form-data"},success: (res) => {//返回的是字符需要转jsonresolve(JSON.parse(res.data))},fail: (res) => {reject}})})
}

调用的时候

upup.then(res => {//在此处做处理,因为是异步所以此处的res只能在此处用//无法声明变量把res赋值给他//因为赋值完毕后res还没跑完
})

完~,百度一查一群篮子货在哪儿复制粘贴博客,几页的答案一摸一样,一群篮子货。如有需要转载,记得标明出处。

UniApp文件上传相关推荐

  1. uniapp图片上传,uniapp视频上传,uniapp附件上传,uniapp上传文件、uniapp文件上传组件

    uniapp文件上传组件,支持图片.视频上传 html部分: <template><view class="annex-wrap"><view cla ...

  2. uniapp 文件上传 2021-06-10

    25548007-ef87ff5dd31946eb.png 帝高阳之苗裔兮,朕皇考曰伯庸. 摄提贞于孟陬兮,惟庚寅吾以降. 皇览揆余初度兮,肇锡余以嘉名: 名余曰正则兮,字余曰灵均. 纷吾既有此内美兮 ...

  3. uniapp微信小程序 选择聊天记录文件上传

    目录 精简版总结 示例 容易踩的坑 1.页面刷新问题 2.extension问题 精简版总结 单文件 wx.chooseMessageFile({count: 1,//限制选择的文件数量type: ' ...

  4. uni-app uni-file-picker文件上传实现拍摄从相册选择获取图片上传文档服务器(H5上传-微信小程序上传)

    前言 最近在使用uni-app写H5移动端,有一个从手机拍摄从相册选择获取图片上传到文档服务器功能. 查阅uni-app发现关于上传图片,uni-file-picker文件上传,uni.chooseI ...

  5. uniapp 图片上传与展示

    项目场景: uniapp 图片 上传 阿里 OSS 对象存储 需求描述: H5移动端开发中需要用户上传图片头像.身份证件等需求时.需要将图片上传至阿里oss中存储,并且下载到当前页面进行展示. 解决方 ...

  6. uniapp 图片上传 删除

    uniapp我的示例:如下 点击加号图片:选择上传类型:图片或者文件 上传的图片可以删除 这是界面上的一系列操作,接下来我们来看如何代码实现吧 一.界面代码:展示图片 <view class=& ...

  7. uniapp图片上传与压缩,兼容小程序与H5

    图片上传借助了Uview2.0的组件 <u-upload :fileList="imgs" :name="" @afterRead="after ...

  8. springboot设置文件上传大小(tomcat默认1M)

    application.yml # 设置文件上传大小(tomcat默认1M) server:tomcat:max-http-form-post-size: -1 spring:servlet:mult ...

  9. 将文件上传至ftp服务器,FTP文件上传工具类,将文件上传至服务器指定目录

    将文件上传至ftp服务器,传入File对象,将文件上传至ftp服务器 需要配置修改的点: 1. 服务器ip端口(服务器ip 端口22/21). 2. 服务器账号密码(服务器登录用户名密码). 3. 上 ...

最新文章

  1. 将表里的数据批量生成INSERT语句的存储过程 继续增强版
  2. 一个晚上,输掉了整个世界!
  3. [Android]生成heap dump文件(.hprof)
  4. 算法笔记——整数划分1
  5. 思科网络CCNA的学习笔记-关于IP和子网的计算
  6. 蓝桥杯-题目:猜算式
  7. WebView与JavaScript交互
  8. Redis-主从配置
  9. 数据库管理软件SQLPro for SQLite for Mac 2022.30
  10. Context Menu控件
  11. 语言余一个负数_Python 中负数取余问题
  12. 多元统计分析最短距离法_多元统计分析方法
  13. 渗透测试工具sqlmap使用技巧-以POST注入为例
  14. 中级微观经济学:Chap 15 市场需求
  15. ASUS主板ALC887声卡,RTL81XX网卡,黑苹果驱动安装
  16. 服务器装虚拟声卡,虚拟声卡,教您怎么安装虚拟声卡
  17. ble mac地址 协议_让BLE设备的名称包含MAC地址
  18. ES冷热分离架构设计:一招让你的ELK日志系统节省 50% 的硬盘成本
  19. 西安电子科技大学光学工程/电子信息(专业课代码851)考研经验分享
  20. 双网卡双IP,实现南北互通

热门文章

  1. Commerzbank和Sparkasse开始支持Apple Pay
  2. 笔记本电脑怎么做计算机题吗,笔记本怎么重装系统 笔记本重装电脑简单教程【图文教程】...
  3. Android蓝牙搜索连接通信
  4. vue2练习五个小例子笔记
  5. 无法连接虚拟设备 floppy0,因为主机上没有相应的设备。 您要在每次开启此虚拟机时都尝试连接此虚拟设备吗?
  6. 利用libjpeg库实现jpg与bmp图片互转指南
  7. esp8266 nvs应用
  8. IIR滤波器设计之冲激响应不变法与双线性变换法
  9. python实操实例100例_趣学Python算法100例
  10. DELMIA软件:机器人工作区运动包络功能介绍与创建方法