使用element实现一个文件上传下载组件,支持的格式包括word PDF png xls 等

以下是一个基于Element UI框架实现的文件上传下载组件的示例代码:

HTML代码:

<template>
  <div>
    <el-upload
      class="upload-demo"
      ref="upload"
      :action="uploadUrl"
      :on-success="handleUploadSuccess"
      :file-list="fileList"
      :accept="acceptFormat"
      :limit="limitNum"
      multiple
      drag
      list-type="text">
      <i class="el-icon-upload"></i>
      <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
      <div class="el-upload__tip" slot="tip">只能上传{{acceptFormat}}格式的文件,每次上传的文件数量不能超过{{limitNum}}个,且文件大小不超过{{maxSize}}MB</div>
    </el-upload>
    <el-button type="primary" @click="handleDownload">下载文件</el-button>
  </div>
</template>

JavaScript代码:

<script>
export default {
  data() {
    return {
      uploadUrl: '/api/upload', // 文件上传地址
      fileList: [], // 已上传的文件列表
      acceptFormat: '.doc,.docx,.pdf,.png,.xls,.xlsx', // 支持上传的文件格式
      limitNum: 5, // 限制每次上传的文件数量
      maxSize: 20, // 限制文件的最大大小(MB)
      downloadUrl: '/api/download' // 文件下载地址
    };
  },
  methods: {
    // 文件上传成功后的回调函数
    handleUploadSuccess(response, file, fileList) {
      console.log('上传成功', response, file, fileList);
      this.fileList = fileList;
    },
    // 下载文件
    handleDownload() {
      // 获取选中的文件的ID
      const selectedFiles = this.fileList.filter(file => file.checked);
      if (!selectedFiles || selectedFiles.length === 0) {
        this.$message.warning('请选择您要下载的文件');
        return;
      }
      // 构造下载链接,下载选中的文件
      const ids = selectedFiles.map(file => file.id);
      const url = this.downloadUrl + '?ids=' + ids.join(',');
      window.open(url);
    }
  }
};
</script>

该组件包含一个<el-upload>和一个<el-button><el-upload>用于上传文件,<el-button>用于下载文件。

组件的数据包括:

  • uploadUrl:文件上传地址。
  • fileList:已上传文件的列表。
  • acceptFormat:支持上传的文件格式,使用英文逗号分隔。
  • limitNum:限制每次上传的文件数量。
  • maxSize:限制文件的最大大小(MB)。
  • downloadUrl:文件下载地址。

组件的方法包括:

  • handleUploadSuccess:文件上传成功后的回调函数,用于更新文件列表。
  • handleDownload:点击下载按钮时的回调函数,用于构造下载链接并下载选中的文件。

注:该组件中的文件上传和下载功能均需要在后端实现对应的接口。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Vue 2中使用Element UI进行视频上传,你可以按照以下步骤进行操作: 1. 首先,在你的Vue项目中安装Element UI组件库。可以通过npm或yarn进行安装: ``` npm install element-ui --save ``` 2. 在项目的入口文件(通常是main.js)中,引入Element UI并注册相应的组件: ```javascript import Vue from 'vue' import ElementUI from 'element-ui' import 'element-ui/lib/theme-chalk/index.css' Vue.use(ElementUI) ``` 3. 在你需要使用上传视频的组件中,使用`<el-upload>`组件实现文件上传功能。在组件的模板中添加如下代码: ```html <template> <el-upload action="your-upload-url" // 替换为你的上传接口地址 :on-success="handleSuccess" :before-upload="beforeUpload" :auto-upload="false" :file-list="fileList" accept="video/*" > <el-button slot="trigger" size="small" type="primary">选取视频文件</el-button> <div slot="tip" class="el-upload__tip">只能上传视频文件</div> </el-upload> </template> ``` 4. 在组件的script部分,定义相应的方法: ```javascript <script> export default { data() { return { fileList: [] // 用于存储选择的文件列表 } }, methods: { handleSuccess(response, file, fileList) { // 文件上传成功后的回调函数 console.log('上传成功') }, beforeUpload(file) { // 文件上传之前的钩子函数 // 可以在这里对文件进行一些验证,如文件大小、文件类型等 console.log('文件上传前') this.fileList.push(file) // 将选择的文件添加到fileList中 return false // 返回false表示不自动上传,需要手动触发上传 } } } </script> ``` 其中`handleSuccess`和`beforeUpload`分别是文件上传成功和上传前的回调函数,你可以根据需求进行相应的处理。 以上就是使用Vue 2和Element UI进行视频上传的基本步骤,你可以根据自己的需要进行进一步的扩展和优化。希望对你有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值