ElementUi 关于 el-upload的自定义上传(http-request)的使用

这篇具有很好参考价值的文章主要介绍了ElementUi 关于 el-upload的自定义上传(http-request)的使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  

在开发中 遇到如下需求,要求前端传参并导入excel表格。导入失败,要弹出错误信息,同时导出错误信息的excel表格,导入成功提示信息即可。

1.原生方式导入文件

参考官方文档,把上传需要的属性加加入使用

elupload http-request,vue,elementui

  改造之前:

elupload http-request,vue,elementui

设置headers信息

elupload http-request,vue,elementui

2.自定义导入文件

在el-upload标签中加入http-request ,如下:

:http-request="importSonCodeRequest" //方法名

具体操作方法如下:

importSonCodeRequest(option){//option 这个参数会拿取到我们el_upload标签里我们配置信息
      if (this.classId=='' ){
        this.$message.warning("请选择归属模块!")
        return
      }
      if (this.codeId=='' ){
        this.$message.warning("请选择子码!") 
        return
      }
      var  data = new  FormData()//自定义 参数类型必须为 FormData格式 此为强制要求
      data.append("file",option.file)
      data.append("classId",this.classId)
      data.append("codeId",this.codeId)
      this.importCommit(data,option,'son')
    },
    //导入方法提交
 //data :为上传文件的参数, type :因为我有两个导入,我用类型来判断是哪个导入方法不需要去掉即可
    importCommit(data,option,type){
      axios({
        url: `${option.action}`,//取自el-upload标签的action中配置,或者也可以在这里直接写url
        method:"post",
        data:data,
        processData:false,
        contentType:false,
        headers: option.headers,//同理
        responseType: "blob",
      }).then(res => {
        if (res.data.size==0){
             this.$message.success("导入成功!")
          if (type=='son'){
            //刷新页面操作
          }else{
            //刷新页面操作
          }
        }else{
          this.errInfoExport(res)
        }
        this.$refs.importUpload.clearFiles()//清除上传成功的文件,非常重要,原因我下文写出来
      }).catch(err=>{
      
      });
    },
 //错误信息导出方法封装
    errInfoExport(res){
      this.$message.error("导入失败!")
      this.addListLoad = false;
      const filename = decodeURIComponent("错误信息导出");//在这个定义导出文件的文件名
      const blob = new Blob([res.data], {type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'});
      if (window.navigator.msSaveBlob) {
        navigator.msSaveBlob(blob, filename);
      } else {
        const elink = document.createElement("a");
        elink.style.display = "none";
        elink.href = URL.createObjectURL(blob);
        document.body.appendChild(elink);
        elink.setAttribute("download", filename);
        document.body.appendChild(elink);
        elink.click();
        document.body.removeChild(elink);
        window.URL.revokeObjectURL(elink.href); // 释放URL 对象
      }
    },

 注意: 这里的Type是根据我们后端代码ExcelUtil工具类中的配置的,无论您的配置是啥,前后端必须要一致,否则导出的Excel文档将会是乱码!!

elupload http-request,vue,elementui

application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

此外 :

//这行代码是是必须要使用的
this.$refs.importUpload.clearFiles() 

//用于清空上传组件中已选择的文件列表。将清空el-upload组件中已选择的文件列表。这个方法通常用于在用户选择了错误的文件或者需要重新选择文件时,清空已选择的文件列表

   这样el-upload的自定义上传文件的简单使用就完成了。当然如果只是单纯的上传文件没有其他额外的需求我还是推荐原生方式。

        感谢您看到这里,您的阅读就是我继续写作的动力!!能帮到您是我的荣幸,愿我们一同进步,加油!                                                                                                     

                                                                                                                       

  文章来源地址https://www.toymoban.com/news/detail-789817.html

到了这里,关于ElementUi 关于 el-upload的自定义上传(http-request)的使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 【前端相关】elementui使用el-upload组件实现自定义上传

    【前端相关】elementui使用el-upload组件实现自定义上传

    elmentui 中的upload默认的提交行为是通过 action 属性中输入的 url 链接,提交到指定的服务器上。但是这种url提交文件的方式,在实际的项目环境中往往是不可取的。 我们的服务器会拦截所有的请求,进行权限控制,密钥检查,请求头分析等安全行为控制。写在这里的url无法实

    2024年02月08日
    浏览(17)
  • elementUI+el-upload 上传、下载、删除文件以及文件展示列表自定义为表格展示

    elementUI+el-upload 上传、下载、删除文件以及文件展示列表自定义为表格展示

    官方文档 https://element.eleme.cn/#/zh-CN/component/upload 具体参数说明,如何实现上传、下载、删除等功能 action :文件上传地址,我的项目里已经封装好了请求。使用的时候需要依据项目填写。 show-file-list : 是否显示已上传文件列表。 headers :设置上传的请求头部。我的项目需要传

    2024年01月20日
    浏览(59)
  • el-upload使用http-request实现图片上传,回显,放大效果

    el-upload使用http-request实现图片上传,回显,放大效果

            在项目开发中,为了实现上传文件的功能,我们需要用到el-upload这个组件,为了实现回显放大效果,就要用到el-image这个组件了。官方文档中介绍了上传的两种方法,一个是使用action,其参数必须要上传的地址;另一个是http-request,该方法覆盖默认的上传行为,可

    2024年02月08日
    浏览(51)
  • elementui el-upload 上传文件

    在使用element中的el-upload上传文件或者图片时,需要先把el-upload的自动上传改为手动上传:auto-upload=“false”然后el-upload内部会调用this.$refs.upload.submit();方法,从而实现多个文件上传。 提示:以下是本篇文章正文内容,下面案例可供参考 代码如下(示例): 需要注意的是 acce

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

    【学习记录21】Vue+ElementUI el-upload多文件上传,一次请求上传多个文件!

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

    2024年02月12日
    浏览(49)
  • vue+elementui中el-upload组件上传文件时,修改文件名,不用FormData

    vue+elementui中el-upload组件上传文件时,修改文件名,不用FormData

    今天在开发的时候,后端突然提了一个需求,因为特殊的文件上传不进文件服务器,所以后端问我能不能上传的时候给加个扩展名,本着只要逻辑没问题,都可以通过代码实现的理念,我说:“可以“”,于是乎有了这篇文章。 首先是去element官网逛了逛,发现也没有提供修

    2024年02月06日
    浏览(14)
  • el-upload自定义上传文件显示进度条

    el-upload自定义上传文件显示进度条

    el-upload自定义上传文件时需要显示进度条,但使用 http-request 会覆盖默认的上传行为, on-progress 也就不生效了,所以可以 自定义上传的实现 。 按钮 数据 事件 导入接口 接口方法 uploadEvent ——在封装的axios请求方法的headers里面加入即可(关键)

    2024年02月15日
    浏览(16)
  • Element-UI 多个el-upload组件自定义上传,不用上传url,并且携带自定义传参(文件序号)
  • Vue+elementUI中的el-upload实现上传文件给后端,限制上传文件的格式、文件的大小、文件的数量,将表单和Excel文件一起提交给后端

    Vue+elementUI中的el-upload实现上传文件给后端,限制上传文件的格式、文件的大小、文件的数量,将表单和Excel文件一起提交给后端

    需求:1.表单输入信息 2.上传Excel附件 3.下载附件模板 4.限制上传文件的格式、文件的大小、文件的数量 5.将表单和Excel文件一起提交给后端 效果图: 样式部分 data部分代码 method中的代码

    2024年02月12日
    浏览(13)
  • el-upload上传文件携带额外参数

    el-upload上传文件携带额外参数

    在进行文件上传时,需要传递其他参数,比如下图中需要实现携带下拉框的参数 前端实现:将下拉框中的参数 传递到:data中  :data=\\\"{\\\'script_model\\\':script_model}\\\"    后端实现: 从post请求中获取携带的参数:  script_model = request.POST.get(\\\'script_model\\\')

    2024年02月11日
    浏览(46)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包