vue3 el-upload 文件夹上传

开启el-upload的选择文件夹功能

onMounted(() => {
  nextTick(() => {
     uploadFileRef.value.$el.querySelector('input').webkitdirectory = true
  })
})

uploadFileRef.value是el-upload绑定的ref

    <el-upload ref='uploadFileRef' class="upload-demo uploadBox" drag 
      :http-request="uploadFile"
      :file-list="uploadFileList"
      :on-change="handleFileChanged" 
      :before-upload="checkFileType"
      :on-remove="removeListData" 
      :limit="fileNumberLimit" 
      :on-exceed="handleExceed">

其他的方法就可以看element官网了,主要还是那个开启文件夹的功能的代码

Vue 2中,`Element-UI` 的 `el-upload` 组件用于处理文件上传。如果你想上传整个文件夹,通常需要配合后端支持,并且在前端做一些额外的操作。以下是基本步骤: 1. 安装依赖: 首先,确保你在项目中已经安装了 `axios` 或其他HTTP库,用于发送文件请求到服务器。如果还没有,可以使用npm或yarn添加: ```bash npm install axios # 或者 yarn add axios ``` 2. 创建组件: 在你的Vue组件中引入`el-upload`和`axios`,然后定义一个方法处理文件夹选择: ```html <template> <el-upload action="你的后端API地址" // 这里替换为你的上传接口 multiple :on-change="handleChange" > <i class="el-icon-folder"></i> 点击选择文件 </el-upload> </template> <script> import axios from &#39;axios&#39;; export default { methods: { handleChange(file) { const files = file.file; // 获取选中的所有文件 if (files.length > 0 && files[0].isDirectory) { // 检查是否是文件夹 this.uploadFolder(files); } }, async uploadFolder(files) { for (let file of files) { try { await axios.post(&#39;your/upload/folder&#39;, { filePath: file.path, // 文件路径 }); console.log(&#39;文件已上传&#39;); } catch (error) { console.error(&#39;上传失败:&#39;, error); } } }, }, }; </script> ``` 注意:这只是一个基础示例,实际操作可能会因后端接口的不同而有所变化。后端可能需要你提供更详细的元数据或者对目录结构有特定的要求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值