博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
vue中上传文件相同文件名没反应
阅读量:6126 次
发布时间:2019-06-21

本文共 1050 字,大约阅读时间需要 3 分钟。

vue项目中会遇到上传文件的需求,jquery会有一些插件很方便,如果不使用插件网上的方法没有太容易的而且很多是原生JS或者基于jQuery操作dom结构的。那么在vue项目中如何实现呢,还有如何模拟表单文件提交呢? 

这里文件上传文件框的样式美化就不过多赘述了,有很多例子。只介绍一下功能的实现以及注意的问题。

  

其中,multiple=”multiple”代表文件可多选;

给文件选择器绑定change事件让它在上传文件后去执行methods里的函数,@change=”changeFn($event)” ;

changeFn(e){        this.deviceArray = [];        let deviceFile = e.target.files;        let formData = new FormData();        for(let i=0;i
{ console.log(res); this.clearShow = true; },()=>{ this.clearShow = true; }); },

  

使用FormData()模拟表单提交文件,循环e.target.files的文件添加到FormData()中。

表单上传请求头信息headers: {‘Content-Type’: ‘multipart/form-data’},

再使用axios配合发送请求这样上传文件功能就基本实现了。 

但是其中遇到一个问题就是change事件触发条件是文件上传框内容改变才可以,每次上传完文件默认是不清空上一次上传的内容的,这样上传同名文件就不会触发change事件。

网上现有的方法就是重置input上传文件的标签的dom结构,在vue里我的实现方法就是v-if去控制。

v-if=”clearShow”,初始化数据为true,在change事件触发的函数里设置clearShow为false,即移除了该input标签,然后在回调函数中再设置clearShow为true,这时的文件上传框就是清空的了。再上传同名文件也不会受影响了。

转载于:https://www.cnblogs.com/lan-cheng/p/10245983.html

你可能感兴趣的文章
FFmpeg在Intel GPU上的硬件加速与优化
查看>>
PDCA + GTD + 番茄工作法
查看>>
阿里云超算揭秘:虚拟机的心脏,物理机的肌肉
查看>>
Edge 浏览器有秘密白名单,允许 Facebook 运行 Flash 代码
查看>>
css 居中几种方法
查看>>
vue双向绑定的实现原理
查看>>
03.HTML5(音频)
查看>>
FileZilla Client 3.41.1 发布,流行的 FTP 解决方案
查看>>
中国唯一的“国际数字化转型专家”,阿里云获Forrester认可
查看>>
图片预加载和懒加载的实现方法
查看>>
Python数据分析之小鲜肉粉丝情况
查看>>
李彦宏加速铺设AI高速公路!大量公司赶着上路
查看>>
推荐3款 Docker 认证的实用免费插件,轻松管理您的网络!
查看>>
Java-单例模式
查看>>
Java NIO(六)Channel 之间的转换(传输)
查看>>
品钛今晚登陆纳斯达克,发行价敲定11.88美元
查看>>
设计模式之死磕装饰器模式(原创)
查看>>
python-面向对象(绑定方法与非绑定方法)
查看>>
mybatis
查看>>
Java并发编程之美
查看>>