el-upload 组件上传文件(查询,上传,删除,下载功能)

1.html

el-upload中的属性:

 <el-upload
        ref="upload"  
        class="upload-demo"  // element-ui自带的样式
        :headers="headerOdj" // 文件上传的头,带token(重要,不然传输大文件会断掉)
        :action="adminUrl" // 上传的服务器地址
        :before-upload="beforeFileUpload" // 文件上传前(判断文件类型,大小)
        :on-success="successFileUpload" // 文件上传成功(上传接口写这,回显的数据处理)
        :on-remove="handleRemove" // 文件移除时候(删除文件接口写这)
        :on-preview="handleFile" // 点击文件时候(文件点击下载)
        :file-list="fileList" // 页面文件回显的list
        drag // 支持拖拽上传
      >

    <!-- pc文件上传对话框 -->
    <el-dialog
      title="文件上传"
      :visible.sync="pcUpload"
      width="400px"
      append-to-body
      :before-close="pcUploadClose"
    >
      <el-upload
        ref="upload" 
        class="upload-demo"
       
Vue 3中使用ElementUI的`el-upload`组件显示上传文件列表,并实现下载删除功能,可以按照以下步骤进行: ### 1. 安装依赖 确保已经安装了Vue 3和ElementUI,若未安装,可以使用以下命令进行安装: ```bash npm install vue@next npm install element-plus ``` ### 2. 编写代码 以下是一个完整的示例代码: ```vue <template> <div> <el-upload ref="uploadRef" :action="uploadUrl" :headers="headers" :file-list="fileList" :on-remove="handleRemove" :on-success="handleSuccess" :auto-upload="true" list-type="text" > <el-button type="primary">点击上传</el-button> <template #tip> <div class="el-upload__tip">只能上传jpg/png文件,且不超过1Mb</div> </template> </el-upload> <div v-for="file in fileList" :key="file.uid"> <span>{{ file.name }}</span> <el-button type="text" @click="downloadFile(file)">下载</el-button> <el-button type="text" @click="handleRemove(file)">删除</el-button> </div> </div> </template> <script setup> import { ref } from 'vue'; import { ElMessage } from 'element-plus'; // 上传文件的URL const uploadUrl = 'your_upload_api_url'; // 请求头 const headers = { Authorization: 'Bearer your_token', }; // 文件列表 const fileList = ref([]); // 上传组件的引用 const uploadRef = ref(null); // 处理文件上传成功事件 const handleSuccess = (response, file, fileList) => { ElMessage.success('文件上传成功'); }; // 处理文件删除事件 const handleRemove = (file, fileList) => { // 这里可以添加删除文件的接口调用 ElMessage.success('文件删除成功'); }; // 处理文件下载事件 const downloadFile = (file) => { // 这里可以添加下载文件的接口调用 window.open(file.url, '_blank'); }; </script> <style scoped> /* 可以添加一些自定义样式 */ </style> ``` ### 代码解释 - **模板部分**: - 使用`el-upload`组件进行文件上传,设置了`action`、`headers`、`file-list`等属性。 - 通过`v-for`指令遍历`fileList`数组,显示上传文件列表,并为每个文件添加了下载删除按钮。 - **脚本部分**: - 使用`ref`来创建响应式变量,包括`fileList`和`uploadRef`。 - `handleSuccess`方法处理文件上传成功事件,显示成功提示信息。 - `handleRemove`方法处理文件删除事件,可在该方法中添加删除文件的接口调用。 - `downloadFile`方法处理文件下载事件,可在该方法中添加下载文件的接口调用,示例中使用`window.open`打开文件链接进行下载。 ### 注意事项 - 请将`uploadUrl`替换为实际的文件上传接口URL。 - 请将`headers`中的`Authorization`替换为实际的认证信息。 - 在`handleRemove`和`downloadFile`方法中,需要根据实际情况添加删除下载文件的接口调用。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值