Element-ui el-upload文件上传

element-ui 文件及图片上传功能

<el-upload
  class="upload-demo"
  auto-upload
  :show-file-list="false"
  :action="uploadUrl"
  name="pic"
  :before-upload="beforeUpload"
  :on-success="uploadSuccess">
  <span class="refresh">上传</span>
</el-upload>

 beforeUpload(file) {
      const isJPG = file.type === 'image/jpeg';
      const isLt2M = file.size / 1024 / 1024 < 2;
      
      if (!isJPG) {
          this.$message.error('上传头像图片只能是 JPG 格式!');
      }
      if (!isLt2M) {
         this.$message.error('上传头像图片大小不能超过 2MB!');
      }
      return isJPG && isLt2M;
 }

 uploadSuccess(res, file) {
    const _this = this;
    if(res.success === false){
      _this.$message({
        message:res.desc,
        type:'warning'
      })
    } else {
      this.qrcodeImgSrc = URL.createObjectURL(file.raw);
      this.imageUrl = file.response.data
    }
    
  }
  

下面对以上参数进行解释:(附上element-ui官网: http://element-cn.eleme.io/2.3/#/zh-CN/component/upload

  auto-upload  文件添加后自动上传

 :show-file-list="false"    不显示文件列表

   uploadUrl 绑定后台请求地址

   name 为后台所需参数,如图片pic、文件file,具体由后台决定

回调方法

before-upload:上传文件之前的钩子,参数为上传的文件,若返回 false 或者返回 Promise 且被 reject,则停止上传。

这里可以根据回调的参数来限制上传的文件类型及大小

on-success:文件上传成功时的钩子。

方法回调的response为后台请求返回的参数,file返回一个文件流(注:返回的文件流有过期时间限制)
 

  

 

### Element UI `el-upload` 组件使用指南 #### 基本配置与属性说明 Element UI 的 `el-upload` 组件用于处理文件上传功能。通过指定不同的属性可以轻松定制化该组件的行为和外观[^1]。 - **action**: 文件上传的网络请求地址,必填项。 - **headers**: 设置上传请求头部信息,在实际项目开发过程中可能涉及到权限验证等问题,此时可以在 headers 中加入 token 或者其他认证参数[^2]。 ```html <template> <div class="upload-demo"> <el-upload :headers="{'Authorization': 'Bearer ' + getToken()}" action="https://jsonplaceholder.typicode.com/posts/" multiple> <button type="button">点击上传</button> </el-upload> </div> </template> <script setup lang="ts"> function getToken(): string { const storedToken = localStorage.getItem('token'); return storedToken ? JSON.parse(storedToken) : ''; } </script> ``` #### 多文件上传支持 为了实现多文件的同时上传,只需简单地给 `<el-upload>` 添加 `multiple` 属性即可允许用户一次选择多个文件进行上传操作。 #### 自定义样式与交互逻辑 除了基本的功能外,还可以进一步自定义按钮文字、图标以及触发方式等细节来满足特定需求。比如可以通过 slot 插槽来自由设计上传区域内的内容展示形式;也可以监听事件(如 file-list change)来做更复杂的业务流程控制[^3]。 #### WebSocket 支持下的分片传输方案 对于大文件或者需要实时反馈进度的情况,则可考虑采用基于 WebSockets 协议的数据流式发送机制来进行优化改进。具体做法参见开源仓库中的实例代码片段。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值