首页 > 其他分享 >vue上传文件夹目录

vue上传文件夹目录

时间:2023-11-08 15:56:53浏览次数:31  
标签:files vue const formData 文件夹 file 上传 any

在input上面添加webkitdirectory directory这两个属性就能开启选择目录模式

<input ref="fileIptRef" class="file-ipt" type="file" webkitdirectory directory multiple @change="handleFileSelect"/>
// 文件上传输入框的ref
const fileIptRef: any = ref(null);

// 加工文件
const traverseFiles = (files: any) => {
for (let i = 0, len = files.length; i < len; i++) {
const file = files[i];
const formData = new FormData();
// 定义上传文件的参数
formData.append("file", file);
formData.append("fromPath", file.webkitRelativePath);
uploadFormData(formData);
}
};

// 获取当前选中的文件夹数据
const handleFileSelect = (event: any) => {
const files = event.target.files;
traverseFiles(files);
};

// 文件上传
const uploadFormData = (formData: any) => {
// 文件上传地址
const action = '*******'
axios
.post(action, formData, {
headers: {
......
},
})
.then((response) => {
// 处理上传成功后的逻辑
console.log(response)
})
.catch((error) => {
// 处理上传失败后的逻辑
console.log(error)
});
};

 

参考文章:http://blog.ncmem.com/wordpress/2023/11/08/vue%e4%b8%8a%e4%bc%a0%e6%96%87%e4%bb%b6%e5%a4%b9%e7%9b%ae%e5%bd%95/

欢迎入群一起讨论

 

 

标签:files,vue,const,formData,文件夹,file,上传,any
From: https://www.cnblogs.com/songsu/p/17817565.html

相关文章

  • springboot3.1.5+文件上传+文件下载
    idea创建项目springbootdemo-download-upload加上thymeleaf模板maven依赖application.properties配置#thymeleaf页面缓存设置(默认为true)spring.thymeleaf.cache=false#单个上传文件大小限制(默认1MB)spring.servlet.multipart.max-file-size=10MB#总上传文件大小限制(默......
  • VUE上传文件夹的三种解决方案
     本文章向大家介绍VUE上传文件夹的三种解决方案,主要内容包括上传分步:、直接上代码、使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。 ​对于大文件的处理,无论是用户端还是服务端,如果一次性进行读取发送、接收都是不可取,很......
  • vue+element拖动排序功能
    vue+element拖动排序功能安装npminstallvuedraggable-S引用importdraggablefrom'vuedraggable'注册组件components:{draggable},通过draggable标签来使用代码<draggablev-model="urlPic":move="onMove"@start=......
  • vue3中使用Pinia
    Pinia是一个用于Vue的状态管理库,类似Vuex,是Vue的另一种状态管理方案三大核心:state(存储的值),getters(计算属性),actions也可支持同步(改变值的方法,支持同步和异步)npminstallpinia@nextoryarnaddpinia@next模块化封装创建实例新建store/index.ts(src目录下新建store......
  • uni-app上传图片后bold转base64
    uni.chooseImage({count:1,//图片张数success:asyncres=>{constreader=newFileReader();reader.readAsDataURL(res.tempFiles[0]);reader.onload=async(e)=>{console.log(e.target.result)//e.target.result转换后的base64......
  • 37-Vue脚手架-nextTick(使用nextTick优化TodoList案例)
    this.$nextTick(十分常用的功能)语法:this.$nextTick(回调函数)作用:在下一次DOM更新结束后执行其指定的回调什么时候用:当改变数据后,要基于更新后的新DOM进行某些操作时,要在nextTick所指定的回调函数中执行 案例:使用 $nextTick优化TodoList案例,在UserItem中添加一个编辑按......
  • SpringBoot集成文件 - 大文件的上传(异步,分片,断点续传和秒传)
    1.知识准备大文件的上传技术手段和普通文件上传是有差异的,主要通过基于分片的断点续传和秒传和异步上传解决。#1.1大文件面临的问题上传速度慢--应对: 分块上传上传文件到一半中断后,继续上传却只能重头开始上传--应对: 断点续传相同文件未修改再次上传,却只能重......
  • vue计算属性computed简单使用
    computed的作用computed用data中现有的属性计算出一个新的属性,叫做计算属性,计算属性和data中属性在{{}}写法和属性一样,例如计算属性name写为<div>{{name}}</div>computed的定义位置computed的定义位置和methods还有data为同级写法为computed:{}<script>exportdefault{data()......
  • vue-test ------事件监听
    <template><h3>监听器</h3><p>{{message}}</p><button@click="updateHandle">点击</button></template><script>exportdefault{name:"WatchDemo",data(){return{mess......
  • vue-test -------style绑定
    <template><p:style="{color:activeColor,fontSize:fontsize+'px'}"></p></template><script>exportdefault{name:"StyleDemo",data(){return{activeColor:"green",......