elementui el-upload一次请求上传多个文件的实现

 更新时间:2023年10月08日 09:52:14   作者:D浩DzD  
使用ElementUI Upload的时候发现如果是默认方案,上传多张图片并不是真正的一次上传多张,本文就来介绍一下elementui el-upload一次请求上传多个文件的实现,具有一定的参考价值,感兴趣的可以了解一下

在使用element中的el-upload是时,当我们要上传多个文件时,el-upload内部会多次调用this.$refs.upload.submit();方法,从而实现多个文件上传,但是有时候,我们希望,当上传多个文件的时候,只给后端发送一次请求,这样就需要先把el-upload的自动上传改为手动上传:auto-upload=“false”

          <el-upload 
              ref="upload" 
              :limit="10" 
              accept=".jpg,.gif,.png,.jpeg,.txt,.pdf,.doc,.docx,.xls,.xlsx" 
              name="files" 
              :multiple="true"
              :action="baseURL"
              :headers="myToken" <!-- 请求头设置 -->
              :on-change="handleFileChange"
              :before-remove="handleFileRemove" 
              :auto-upload="false"
              :file-list="upload.fileList" 
              >
              <el-button slot="trigger" size="small" type="primary">选取文件</el-button>
            </el-upload>
            <el-button type="primary" @click="submitFileForm">确 定</el-button>
data(){
	return {
      upload: {
        fileList: [],
        fileName: []
      },
	}
}

通过FormData创建一个数据对象,并且将上传的文件append到对象中

    // 上传发生变化钩子
    handleFileChange(file, fileList) {
      this.upload.fileList = fileList;
    },
    // 删除之前钩子
    handleFileRemove(file, fileList) {
      this.upload.fileList = fileList;
    },
    // 提交上传文件
    submitFileForm() {
      // 创建新的数据对象
      let formData = new FormData();
      // 将上传的文件放到数据对象中
      this.upload.fileList.forEach(file => {
        formData.append('file', file.raw);
        this.upload.fileName.push(file.name);
      });
      console.log("提交前",formData.getAll('file'));
      // 文件名
      formData.append('fileName', this.upload.fileName);
      // 自定义上传
      this.$api.uploadFile(formData).then(response => {
          console.log(response);
          // if(response.code == 200){
          //   this.$refs.upload.clearFiles();
          //   this.msgSuccess('上传成功!');
          // }else{
          //   this.$message.error(response.msg);
          // }
        })
        .catch(error => {
          this.$message.error('上传失败!');
        });
    },

使用自定义上传的接口,而不是使用*this.$refs.upload.submit();*方法
注意上传文件接口的请求头中headers中的’Content-Type’要为’multipart/form-data’

// 封装的上传请求
	uploadFile(params) {
		return axios.post(`/shiro/swpe/permission/uploadOrStartProceBPS`, params,
		 { headers: { 'Content-Type': 'multipart/form-data', token: window.localStorage.getItem('token')}})
	},

到此这篇关于elementui el-upload一次请求上传多个文件的实现的文章就介绍到这了,更多相关elementui el-upload请求多文件上传内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 

相关文章

  • vue项目中怎样嵌入其它项目的页面

    vue项目中怎样嵌入其它项目的页面

    这篇文章主要介绍了vue项目中怎样嵌入其它项目的页面问题,具有很好 的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-10-10
  • 基于axios封装fetch方法及调用实例

    基于axios封装fetch方法及调用实例

    下面小编就为大家分享一篇基于axios封装fetch方法及调用实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-02-02
  • vue3 ref实现响应式的方法

    vue3 ref实现响应式的方法

    这篇文章主要介绍了vue3的ref是如何实现响应式的,我们讲了ref是如何实现响应式的,主要分为两种情况:ref接收的是number这种原始类型、ref接收的是对象这种非原始类型,需要的朋友可以参考下
    2024-07-07
  • Vue3开发必备的六个VSCode插件推荐

    Vue3开发必备的六个VSCode插件推荐

    在VSCode中添加好用的插件可以提高我们的开发效率,这些可以帮助我们格式化,扩充性,执行最佳实践的代码方式,自动完成一些琐碎的事情,下面这篇文章主要给大家推荐介绍了关于Vue3开发必备的六个VSCode插件,需要的朋友可以参考下
    2022-12-12
  • 在vue项目中利用popstate处理页面返回的操作介绍

    在vue项目中利用popstate处理页面返回的操作介绍

    这篇文章主要介绍了在vue项目中利用popstate处理页面返回的操作介绍,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-08-08
  • vue3中reactive数据被重新赋值后无法双向绑定的解决

    vue3中reactive数据被重新赋值后无法双向绑定的解决

    这篇文章主要介绍了vue3中reactive数据被重新赋值后无法双向绑定的解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-05-05
  • vue如何将base64流数据转成pdf文件并在新页面打开

    vue如何将base64流数据转成pdf文件并在新页面打开

    这篇文章主要介绍了vue如何将base64流数据转成pdf文件并在新页面打开问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • Vue.sync修饰符与$emit(update:xxx)详解

    Vue.sync修饰符与$emit(update:xxx)详解

    这篇文章主要介绍了Vue.sync修饰符与$emit(update:xxx),实现思路非常简单,文章介绍了.sync修饰符的作用和使用.sync修饰符的写法,实现代码简单易懂对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-11-11
  • vue监听滚动条页面滚动动画示例代码

    vue监听滚动条页面滚动动画示例代码

    Vue是一套用于构建用户界面的渐进式框架,与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用,下面这篇文章主要给大家介绍了关于vue监听滚动条页面滚动动画的相关资料,需要的朋友可以参考下
    2023-06-06
  • Vue前端解析Excel数据方式

    Vue前端解析Excel数据方式

    这篇文章主要介绍了Vue前端解析Excel数据方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-03-03

最新评论