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

这篇具有很好参考价值的文章主要介绍了Vue+elementUI中的el-upload实现上传文件给后端,限制上传文件的格式、文件的大小、文件的数量,将表单和Excel文件一起提交给后端。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

需求:1.表单输入信息

2.上传Excel附件

3.下载附件模板

4.限制上传文件的格式、文件的大小、文件的数量

5.将表单和Excel文件一起提交给后端

  • 效果图:

vue上传文件到后端,vue.js,前端,javascript,elementui,Powered by 金山文档
  1. 样式部分

 <el-form ref="form" :model="peopleform" label-width="150px">
      <el-form-item>
        <el-button
          type="primary"
          plain
          size="medium"
          icon="el-icon-download"
          style="float:right;"
          @click="downloads"
        >下载模板</el-button>
      </el-form-item>

      <el-form-item label="姓名">
        <el-input v-model="peopleform.name"></el-input>
      </el-form-item>
      <el-form-item label="电话">
        <el-input v-model="peopleform.phone"></el-input>
      </el-form-item>
      <el-form-item label="地址">
        <el-input v-model="peopleform.address"></el-input>
      </el-form-item>
      <el-form-item label="上传附件">
        <el-upload
          drag
          action="#"
          :http-request="httpRequest"
          :before-upload="beforeUpload"
          :on-exceed="handleExceed"
        >
          <i class="el-icon-upload"></i>
          <div class="el-upload__text">
            将文件拖到此处,或
            <em>点击上传</em>
          </div>
        </el-upload>
      </el-form-item>
      <el-form-item>
        <el-button type="success" size="medium" @click="submit" style="margin:0 !important">提交</el-button>
      </el-form-item>
    </el-form>
  1. data部分代码

 data () {
    return {
      peopleform: {
        name: '',
        phone: '',
        address: '',
      },
      fileList: []
    }
  },
  1. method中的代码文章来源地址https://www.toymoban.com/news/detail-521231.html

 methods: {
    // 覆盖默认的上传行为
    httpRequest (raw) {
      this.fileList.push(raw)
    },
    // 上传前
    beforeUpload (file) {
      let fileSize = file.size
      const FIVE_M = 2 * 1024 * 1024
      //不允许上传大于2M
      if (fileSize > FIVE_M) {
        this.$message.error("最大上传2M")
        return false
      }
      //判断文件类型,必须是xlsx格式
      let fileName = file.name
      let reg = /^.+(\.xlsx)$/
      if (!reg.test(fileName)) {
        this.$message.error("只能上传xlsx!")
        return false
      }
      return true
    },
    // 文件数量提醒
    handleExceed () {
      this.$message({ type: 'error', message: '最多支持1个附件上传' })
    },
    //提交
    async submit () {
      const params = new FormData()
      this.fileList.forEach((x) => {
        params.append('file', x.file)
      })
      params.append('name', this.peopleform.name)
      params.append('phone', this.peopleform.phone)
      params.append('address', this.peopleform.address)
      const res = await this.axios.post("这里填路径", params)
      if (res) {
        this.$message.success("上传成功!")
      }

    },
    //设置下载文件
    downloads () {
      let a = document.createElement("a")
      a.href = "/data/datas/main_ventilator_excel.xlsx"
      a.download = "main_ventilator_excel.xlsx" //设置下载文件文件名,这里加上.xlsx指定文件类型
      a.style.display = "none"
      document.body.appendChild(a)
      a.click()
      a.remove()
    }

  }

到了这里,关于Vue+elementUI中的el-upload实现上传文件给后端,限制上传文件的格式、文件的大小、文件的数量,将表单和Excel文件一起提交给后端的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

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

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

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

    2024年02月08日
    浏览(9)
  • vue 使用 el-upload 上传文件(自动上传/手动上传)

    vue 使用 el-upload 上传文件(自动上传/手动上传) 上传 上传

    2024年02月13日
    浏览(38)
  • elementUI 的上传组件<el-upload>,自定义上传按钮样式

    elementUI 的上传组件<el-upload>,自定义上传按钮样式

    原理:调用el-upload组件的方法唤起选择文件事件 效果: 页面代码: js代码:(其他逻辑与element文档的上使用一致) css代码: 隐藏原来的选择图片按钮 原理:把图片显示分离出来,el-upload做选择图片使用,单独做一个显示图片的区域 效果:  页面代码: js 代码: css代码:

    2024年02月13日
    浏览(11)
  • Vue3使用ElementPlus中的el-upload手动上传并调用上传接口

    实体类 定义接口 上传文件并插入数据库数据

    2024年01月20日
    浏览(33)
  • el-upload实现上传文件夹

    el-upload实现上传文件夹

    背景:如图一所示,最下面有一个黄色上传文件按钮,为手动上传而且上传区域有上传文件和上传文件夹的区分 所以需要在点击了上传文件夹做特殊处理使得el-upload可以上传文件夹 01.在拖拽上传的区域绑定一个点击事件 handlePreview ,(注意不要直接绑定在el-upload区域,会被触

    2024年02月07日
    浏览(9)
  • vue el-upload实现图片和文字上传

    vue el-upload实现图片和文字上传

    一、需求: 在表单中使用图片上传,每一张上传的图片都可以加上文字说明通过表单一起传到后台,最后再其他需要的地方展示出来。  二、实现: 后端表单提交时,图片需要的格式是:imageList[ { fileUrl:\\\' \\\', imageExplain:\\\' \\\' } ] 界面代码 v-model=\\\"form.imageUrl\\\" :action=\\\"fileUrl\\\" 调用接

    2024年02月10日
    浏览(35)
  • vue+el-upload(封装华为云OBS上传文件)前端直传

    vue+el-upload(封装华为云OBS上传文件)前端直传

    注释:代码中###是需要填写自己东西的 以上代码为封装的组件代码,需要引入父组件后调用配置 下面图为组件调用,注册跟引入就不用我多说了吧,不会的自行百度 注:华为云前端直接上传的话会出现跨域报错,把华为云OBS CORS跨域规则设置一下 我设置的规则全部打开了

    2024年02月05日
    浏览(36)
  • 使用el-upload组件实现递归多文件上传

    使用el-upload组件实现递归多文件上传

    一、需求描述:在页面上点击按钮弹出选择电脑文件的界面,可以一次性选择多个文件一起上传到服务器上,并把上传成功的文件展示在页面上。 · 二、 问题阐述:el-upload是支持多文件上传的,但是是同步进行的,你点击上传按钮,选择了多个文件后点击确定,会同时调用

    2023年04月08日
    浏览(7)
  • el-upload实现上传文件并展示进度条

    el-upload在实现文件上传时无法触发on-progress钩子,即使调用后端接口并成功的情况下都无法触发,可以通过如下配置来解决: 随后将config添加至调用后端接口,即可成功获取进度~ html: JS部分

    2024年02月04日
    浏览(12)
  • vue element el-upload附件上传、在线预览、下载当前预览文件

    vue element el-upload附件上传、在线预览、下载当前预览文件

    上传 在线预览(iframe): payload: response: 全部代码: 初版–01

    2024年02月14日
    浏览(15)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包