Element UI 实现Upload多文件上传 (只请求一次接口)

这篇具有很好参考价值的文章主要介绍了Element UI 实现Upload多文件上传 (只请求一次接口)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

**

页面代码:

**

   <el-upload
          :auto-upload="false"
          multiple
          class="upload-demo"
          action="#"
          :on-change="uploadChange"
          :before-remove="beforeRemove"
          :on-remove="upLoadRemove"
          :on-preview="downLoadFile"
          :file-list="fileList"
        >
          <el-button size="small" icon="el-icon-plus" slot="trigger"
            >选取文件</el-button
          >
          <el-button
            style="margin-left: 10px"
            size="small"
            icon="el-icon-upload"
            type="success"
            @click="submitUpload"
            :disabled="fileList.length <= 0"
            >上传到服务器</el-button
          >
        </el-upload>

**

API用到的方法

**

 // 拖拽上传
    beforeRemove(file, fileList) {
      this.fileList = fileList;
      // return this.$confirm(`确定移除 ${file.name}?`);
    },
    // 移除附件
    upLoadRemove(file, fileList) {
      let tempFileList = [];
      for (var index = 0; index < this.fileList.length; index++) {
        if (this.fileList[index].name !== file.name) {
          tempFileList.push(this.fileList[index]);
        }
      }
      this.fileList = tempFileList;
    },
    // 监控上传文件列表
    uploadChange(file, fileList) {
      let existFile = fileList
        .slice(0, fileList.length - 1)
        .find((f) => f.name === file.name);
      if (existFile) {
        this.$message.error("当前文件已经存在!");
        fileList.pop();
      }
      this.fileList = fileList;
    },
    // 上传到服务器  formidable接收
    async submitUpload() {
      // 上传文件大小不能超过100MB!
      const isLt100M = this.fileList.every(
        (file) => file.size / 1024 / 1024 < 100
      );
      let formData = new FormData();
      this.fileList.forEach((item) => {
        formData.append("files", item.raw);
      });
      formData.append("parentId", this.mapValue);
      // append追加后console.log后仍为空,需要用formData.get("键")的方法获取值
      const res = await fileUpload(formData);
      console.log(res);
    },
    // 点击文件进行下载
    downLoadFile(file) {
      var a = document.createElement("a");
      var event = new MouseEvent("click");
      a.download = file.name;
      a.href = file.url;
      a.dispatchEvent(event);
    },
    //  :on-exceed="handleExceed"
    // 选取文件超过数量提示
    // handleExceed(files, fileList) {
    //   this.$message.warning(`当前限制选择 5 个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length} 个文件`);
    // },

注: 页面上用到的请求 是封装好的 from-data 表单提交后台
elementui多文件上传只调一次接口,Vue,javascript,前端,upload上传,elementui
效果图展示:
elementui多文件上传只调一次接口,Vue,javascript,前端,upload上传,elementui
请求参数展示:
elementui多文件上传只调一次接口,Vue,javascript,前端,upload上传,elementui

后端代码springboot代码展示:文章来源地址https://www.toymoban.com/news/detail-561069.html

@RequestMapping(value = "/upload", method = RequestMethod.POST)
public Results upload(@RequestParam("files") MultipartFile[] files) throws Exception {

    SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
    String date = sdf.format(new Date());
    String fileName = null;
    String filePath = null;

    List<File> fileList = new ArrayList<>();
    File tmp = null;
    for(MultipartFile file : files){
        fileName = file.getOriginalFilename();

        InputStream fileIo = file.getInputStream();
        String fileType = fileName.substring(fileName.lastIndexOf(".") + 1);

        //保存到minio
        String minioName = UUID.randomUUID().toString().replace("-", "");
        filePath = "/"+date+"/" + minioName + "." + fileType;

        //udt是桶的名字
//            minioTemplate.saveObject(MinioTemplate.MINIO_BUCKET, filePath, fileIo, file.getContentType());

        tmp = new File();
        tmp.setFileName(fileName);
        tmp.setFilePath("/" + MinioTemplate.MINIO_BUCKET + filePath);
        tmp.setFileSize(String.valueOf(file.getSize()));
        tmp.setMimeType(file.getContentType());
        fileList.add(tmp);
    }

    return Results.ok("文件上传成功").put("fileList", fileList);
}

到了这里,关于Element UI 实现Upload多文件上传 (只请求一次接口)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Element之el-upload多文件一次性上传

    方法一: 页面展示: Html部分代码: accept 用于限制允许上传哪些类型文件 name 上传的文件字段名  (默认为 file) multiple 是否支持多选文件 action 必选参数,上传的地址 headers 设置上传的请求头部 file-list 上传列表 auto-upload 是否在选取文件后立即进行上传 主要逻辑: 1. 多选文

    2024年02月11日
    浏览(41)
  • 解决element-ui中组件【el-upload】一次性上传多张图片的问题

    前端 后端 后端使用的是multer中间件,用来接收前端发送过来的multipart/form-data形式的数据 multer.js router.js

    2024年02月12日
    浏览(50)
  • 扩展element-ui el-upload组件,实现复制粘贴上传图片文件,带图片预览功能

    控件改造 在窗口的 el-form 控件参数中添加 @paste.native 事件,事件绑定方法名 handlePaste 也可以在其他控件中添加事件监听,看个人需求。 注意: 监听粘贴事件时,需要当前页面先获取焦点,否则无法正常监听, 可以在页面加载后调用 focus() 获取焦点 粘贴功能Js部分参考资料

    2023年04月08日
    浏览(91)
  • 【学习记录21】Vue+ElementUI el-upload多文件上传,一次请求上传多个文件!

    前情回顾说点废话。。。 1、项目当中遇到需要上传多个图片,一次选取多个图片。但是吧el-upload默认只能一个一个传,每次上传成功还的自己去push,一个一个去判断。 2、关键是后台给的接口,要一次性接收一堆,无奈之下只能去网上搜索,大佬们都是给的代码片段无法直

    2024年02月12日
    浏览(59)
  • Element-ui upload 手动上传文件

    (随手一发,可以拿过来就用,不做解释看不懂的可以照搬,👇代码可复制👇)    

    2024年02月11日
    浏览(37)
  • Element-UI的Upload 上传文件

    \\\"element-ui\\\": \\\"^2.15.9\\\" Upload 上传官方文档 2.1 自动上传 限制一次只能上传一个文件,并判断上传的文件大小及文件类型; 自动上传:即选择文件后即开始校验,校验通过后调接口上传到服务器 2.2 手动上传 限制一次只能上传一个文件,并判断上传的文件大小及文件类型; 手动上

    2024年02月11日
    浏览(37)
  • Element Ui 之 文件上传组件的使用 Upload

    最近正好学到了Element Ui的文件上传组件,虽然不太难但一个人琢磨还是整了很久 以下是我整理的规范性文件上传组件为例 前端 后端 此处的String dirPath = \\\"D:/files\\\"可以选取你电脑上的指定位置 接上面 如有错误,欢迎指出

    2024年02月13日
    浏览(51)
  • 使用element-ui的Upload 上传文件

    使用Upload 进行文件上传 https://element.eleme.cn/#/zh-CN/component/upload 注:当文件和一些其他数据(姓名,年龄)进行一起上传时候可分为两种过程 第一种:单独的文件上传地址,上传完文件后,后端返回该文件的地址,前端将该地址同其他数据(姓名,年龄)再次上传。 第二种:

    2024年02月12日
    浏览(41)
  • Element UI | Upload 使用submit方法手动上传文件

    点击上传文件按钮不立刻进行上传,而是点击提交后再调用上传接口,和表单一起提交。 js:  判断文件没有上传即先进行文件上传,上传文件成功后在调用表单上传接口,否则直接调用接口上传表单。submit为element ui内部方法。表单上传接口一般传递文件id。

    2024年02月15日
    浏览(41)
  • element-ui文件上传el-upload

            element-ui官网中有文件上传         首先先展示一下我页面的实现效果,如下图所示:          从图中可以看出,我这边实现的是一个可显示进度条的文件上传操作,而且如果上传的文件很大等,还可以中断文件上传。         值得注意的是,如果有添

    2024年02月05日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包