在vue项目中使用element-ui的Upload上传组件的示例

本文介绍了vue项目中使用element-ui的Upload上传组件的示例,分享给大家,具体如下:

<el-upload
        v-else
        class='ensure ensureButt'
       :action="importFileUrl"
        :data="upLoadData"
        name="importfile"
        :onError="uploadError"
        :onSuccess="uploadSuccess"
        :beforeUpload="beforeAvatarUpload"
        >
<el-button size="small" type="primary">确定</el-button>

其中importFileUrl是后台接口,upLoadData是上传文件时要上传的额外参数,uploadError是上传文件失败时的回掉函数,uploadSuccess是文件上传成功时的回掉函数,beforeAvatarUpload是在上传文件之前调用的函数,我们可以在这里进行文件类型的判断。

data () {
  importFileUrl: 'http:dtc.com/cpy/add',
  upLoadData: {
    cpyId: '123456', 
    occurTime: '2017-08'
  }
},
methods: {
  // 上传成功后的回调
  uploadSuccess (response, file, fileList) {
   console.log('上传文件', response)
  },
  // 上传错误
  uploadError (response, file, fileList) {
   console.log('上传失败,请重试!')
  },
  // 上传前对文件的大小的判断
  beforeAvatarUpload (file) {
   const extension = file.name.split('.')[1] === 'xls'
   const extension2 = file.name.split('.')[1] === 'xlsx'
   const extension3 = file.name.split('.')[1] === 'doc'
   const extension4 = file.name.split('.')[1] === 'docx'
   const isLt2M = file.size / 1024 / 1024 < 10
   if (!extension && !extension2 && !extension3 && !extension4) {
    console.log('上传模板只能是 xls、xlsx、doc、docx 格式!')
   }
   if (!isLt2M) {
    console.log('上传模板大小不能超过 10MB!')
   }
   return extension || extension2 || extension3 || extension4 && isLt2M
  }
}

最近在适用VUE作为前端框架做自己的项目,在做到需要上传文件到服务器时,同事告诉我upload之中的action也就是上传地址不能动态的去更改,然后去看了一下,需要做以下处理才能动态的使用:

action是一个必填参数,且其类型为string,我们把action写成:action,然后后面跟着一个方法名,调用方法,返回你想要的地址,代码示例:

//html 代码
<el-upload :action="UploadUrl()" :on-success="UploadSuccess" :file-list="fileList">
  <el-button size="small" type="primary" >点击上传</el-button>
  <div slot="tip" class="el-upload__tip"></div>
</el-upload>
// js 代码在 methods中写入需要调用的方法
methods:{
  UploadUrl:function(){
    return "返回需要上传的地址";   
  }  
}  
Vue项目是一个基于MVVM模式的JavaScript框架,用于构建用户界面,它能够帮助开发者快速构建单页应用(SPA)。Element UI是为Vue.js提供的一套桌面端组件库,它基于饿了么团队在实际业务抽象出的通用组件,拥有丰富的UI组件,可以帮助开发者快速搭建高质量的web界面。 要在使用Element UIVue项目实现点击按钮手动上传二进制文件流,你可以使用Element UI的`<el-upload>`组件。该组件提供了丰富的属性和事件,可以满足你的需求,包括多文件上传和文件数量限制。以下是一个简单的示例实现: 1. 首先,确保已经将Element UI安装并引入到你的项目。 2. 在你的Vue组件使用`<el-upload>`并设置`action`属性(上传的服务器接口地址)。 3. 设置`multiple`属性以支持多文件上传。 4. 设置`limit`属性以限制最多上传文件的数量。 5. 监听`change`事件,该事件会在文件列表改变时触发,你可以在这个事件处理文件数组的更新。 6. 监听`exceed`事件,该事件会在尝试上传的文件数量超出限制时触发,你可以在这里给用户提示。 以下是一个简单的代码示例: ```html <template> <div> <el-upload action="#" :limit="10" :on-exceed="handleExceed" :on-change="handleChange" > <el-button size="small" type="primary">点击上传</el-button> </el-upload> </div> </template> <script> export default { data() { return { fileList: [] // 文件列表 }; }, methods: { handleExceed(files, fileList) { this.$message.warning(`最多只允许上传10个文件,当前已超出限制。`); }, handleChange(file, fileList) { // 如果超出限制,移除超出的文件 if (fileList.length > 10) { this.fileList = fileList.slice(0, 10); } else { // 否则更新文件列表 this.fileList = fileList; } } } }; </script> ``` 在上面的代码,我们使用了`el-upload`组件的`multiple`属性默认为`true`,所以它支持多文件上传。`limit`属性设置为`10`,表示最多可以上传10个文件。当用户试图上传超过10个文件时,`handleExceed`方法会被调用,向用户显示警告消息。`handleChange`方法会在文件列表发生变化时被调用,它检查文件数量并相应地更新`fileList`数据属性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值