elementUI自定义上传文件(前端后端超详细过程)

这篇具有很好参考价值的文章主要介绍了elementUI自定义上传文件(前端后端超详细过程)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

elementUI自定义上传文件(前端后端超详细过程)

简介自定义上传文件并与其他参数一同提交到后台(主要使用axios)

  1. 简单介绍组件( upload)的属性(熟悉参数的直接略过)

总结elmentUI一下它的使用和常用属性的作用。

limit : 限制了上传文件的个数 , 如果你上传单个文件这里设置 1 ,多个文件就别设置。

auto-upload:自动上传,在我看来,除非是单独上传文件时,
这个属性才有用,因为单独文件直接上传到后台服务器。
而我们想要自己获取到组件里的文件和其它表单数据,再上传,就需要别的办法,下面会讲。

action:这个属性是上传文件的地址,当我们指定了 auto-upload 属性,
组件就会自动按 action 的地址提交。我一般都不设置这个属性:action="none", 
因为我觉得自定义的更好,拓展性强。

multiple:这个属性支持多文件上传,如果你是上传单文件这个属性随便设不设置,如果是多文件,就要设置,所以建议不动,因为它默认开启。

accept:这个就不细说了,限制类型的,当然仅限选择时的类型,用户要是想上传其它类型的文件照样有办法。
  1. 主要目的自定义上传文件

2.1 组件代码

<el-upload class="upload"
                 ref="upload"
                 action="string"
                 :file-list="fileList"	//存放选择的文件
                 :auto-upload="false"	//取消自动上传		
                 :http-request="uploadFile"		自定义上传的方法
                 :on-change="handleChange"	//文件选择后执行的方法
                 :on-preview="handlePreview"	//点击显示文件(没啥用)
                 :on-remove="handleRemove"	//移除文件
                 multiple="multiple">	
        <el-button slot="trigger"
                   size="small"
                   type="primary"
                   @click="delFile">选取文件</el-button>
      </el-upload>

2.2 data中的属性

data(){
    return{
	// el-upload组件绑定的属性—— :file-list=“fileList”,渲染后fileList[index]是Object类型,而不是后台所需的File类型,
      // 而这个组件已经把对应的File类型存储到了fileList[index].raw这个属性里,直接拿来用就好.
      fileList: [],
      // 不支持多选
      multiple: false,
      formData: "",
    }
}

2.3 methods的方法

    //点击上传文件触发的额外事件,清空fileList
    delFile () {
      this.fileList = [];
    },
    handleChange (file, fileList) {
      this.fileList = fileList;
      // console.log(this.fileList, "sb");
    },
    //自定义上传文件
    uploadFile (file) {
      this.formData.append("file", file.file);
      // console.log(file.file, "sb2");
    },
    //删除文件
    handleRemove (file, fileList) {
      console.log(file, fileList);
    },
    // 点击文件
    handlePreview (file) {
      console.log(file);
    },
  1. 与其他参数通过axios提交到后台

这里要使用到FormData()对文件进行存储才能提交到后台

具体实现方式:

//准备一个提交按钮
<el-button type="primary"
                     @click="onSubmit">保存</el-button>

提交事件:

//保存按钮
    onSubmit () {
        let formData = new FormData();
        formData.append("file", this.fileList[0].raw);//拿到存在fileList的文件存放到formData中
       //下面数据是我自己设置的数据,可自行添加数据到formData(使用键值对方式存储)
        formData.append("title", this.title);

axios异步提交:

注意:使用FormData提交文件只能使用post请求

在post请求体中需要设置 “Content-Type”:
“multipart/form-data;charset=utf-8”,提醒后台数据是FormData类型

axios.post(post请求的具体路径, formData, {
        "Content-Type": "multipart/form-data;charset=utf-8"
      })
        .then(res => {
          if (res.data === "SUCCESS") {
            this.$notify({
              title: '成功',
              message: '提交成功',
              type: 'success',
              duration: 1000
            });
          }
        })

最后后台数据的接收

注意:前台传送的是FormData数据,要拿到文件要使用@RequestParam(前端存放到formData的key)
MultipartFile file进行接收

//采用PostMapping
    @PostMapping(具体路径)
    public String saveVue(String title,@RequestParam("file") MultipartFile file) throws IOException {
       	//拿到具体文件 file
            return "SUCCESS";
    }

介绍到这就基本完成了elmentui的自定义上传功能,记得点赞!文章来源地址https://www.toymoban.com/news/detail-780714.html

到了这里,关于elementUI自定义上传文件(前端后端超详细过程)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

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

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

    2024年02月08日
    浏览(43)
  • 微信小程序 - 超详细 “纯前端“ 将文件上传到阿里云 OSS,最新阿里云 OSS 直传音视频、图片、word、excel、ppt、office 文档(全程无需后端,前端文件直传阿里云oss服务器)

    网上的教程乱七八糟却文件少代码(并且没注释),而且都已经很老了,对于新手来说真的无从下手。 本文站在新手小白的角度, 实现微信小程序开发中,“前端直传” 上传文件到阿里云oss对象存储的详细教程, 无需后端 (纯前端自己完成所有签名、上传),保证 100% 成

    2024年02月13日
    浏览(120)
  • 图片上传流程&前端上传文件&后端保存文件&并返回图片地址

    也是在最近一点时间写小demo 遇到的一些问题 比如在用户界面,用户选择本地的一张照片,前端把照片传到后端,后端怎么把照片保存到服务器,然后返回给 图片线上地址。也是找了一些文章,然后分享下。  技术 前端:react 后端:egg.js(node框架) base64 转换  转二进制 保存

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

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

    2024年01月20日
    浏览(39)
  • 前端上传文件夹或文件至后端(SpringBoot)

    前端上传文件夹使用的是 input 标签的file属性,最重要的是 webkitdirectory 这个属性,有了这个属性之后input才可以选择文件夹,但也只能选择文件夹了。 在webkitdirectory的官方文档里有对该属性的说明。 我们可以在这基础上做延伸,做一个表单来上传文件夹: form要加上 enctype=“

    2024年02月05日
    浏览(46)
  • 【文件上传系列】No.2 秒传(原生前端 + Node 后端)

    【文件上传系列】No.1 大文件分片、进度图展示(原生前端 + Node 后端 Koa) 整理的思路是:根据文件的二进制内容生成 Hash 值,然后去服务器里找,如果找到了,说明已经上传过了,所以又叫做秒传(笑) 接着上一章的内容,因为前端和后端的服务都写在一起了,显得有点凌

    2024年02月05日
    浏览(36)
  • 后端:使用easyExcel实现解析Excel文件读取数据。前端:Excel模板下载、前端上传文件

            本篇是EasyExcel快速入门知识,讲解如何读取Excel文件,对Excel中错误信息如空字符、必填项为空、表格格式校验做到处理 ,并给出了实际项目中示例代码;为什么要使用easyexcel;原因是相比于poi,easyexcel更加轻量级,读取写入API方便,并且在工作中占用内存较小;

    2024年02月05日
    浏览(53)
  • 前端上传的文件,后端将如何进行存储以及回显

    完成文件上传这个功能需要涉及到两个部分: 前端程序 服务器程序 文件上传后将如何进行储存 本地磁盘储存 云服务器oss储存 ##后端项目创建 创建springboot工程,引入对应的起步依赖(web、mybatis、mysql驱动、lombok) 配置文件application.properties中引入mybatis的配置信息,准备对应

    2024年02月04日
    浏览(35)
  • 大文件上传demo,前端基于Uppy,后端基于koa

    文件上传基本上所有的管理系统之类的项目都有这么一个功能。因为使用了 Element ,可以方便的使用 其提供的 Upload 组件,对于普通上传来说基本上就够用了。但是有时候会涉及到大文件上传的需求,这时就会面临一些问题:比如文件上传超时。 自己做的话很麻烦,需要考虑

    2024年02月09日
    浏览(32)
  • 后端“fastapi”+前端“vue3+ts+ElementPlus”上传文件到uploads目录

    确保已安装好python3和fastapi mail.py 运行fastapi服务器 使用浏览器访问 http://127.0.0.1:8000/http://127.0.0.1:8000/docs 确保已安装node.js和yarn 使用vite初始化前端目录  安装element-plus main.ts中导入element-plus  修改vite.config.ts配置“CORS 跨域” 修改App.vue 运行 使用浏览器访问 http://127.0.0.1:70

    2024年02月22日
    浏览(36)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包