WebUploader 解决文件多次上传和删除上传文件的问题
文件多次上传有两种情况:
1. 上传前的多次选择
2. 上传成功后,再次选择
其实API上,已经有了介绍了,不知道为什么有同学还是不知道如何做,我来抛砖引玉吧。
配置项:
duplicate{Boolean} [可选] [默认值:undefined]去重, 根据文件名字、文件大小和最后修改时间来生成hash Key.
将dupliacate设置为true, 允许文件多次上传
其实有了这个配置就可以了,不过uploader有个getFiles方法,这个方法容易上人产生误解,
通常会认为getFiles方法 获取的是准备要上传的文件,其实不然。API介绍如下:
getFiles
- getFiles() ⇒ Array
- getFiles( status1, status2, status... ) ⇒ Array
返回指定状态的文件集合,不传参数将返回所有状态的文件。
这里的状态如下:
File.Status
文件状态值,具体包括以下几种类型:
inited初始状态queued已经进入队列, 等待上传progress上传中complete上传完成。error上传出错,可重试interrupt上传中断,可续传。invalid文件不合格,不能重试上传。会自动从队列中移除。cancelled文件被移除。
就是说,只要我们的uploader对象没有重新创建,那它会保存所有选择的文件,
当然我们也有方法,clear一下, 我们看到有这样的方法:
removeFile
- removeFile( file ) ⇒ undefined
- removeFile( id ) ⇒ undefined
- removeFile( file, true ) ⇒ undefined
- removeFile( id, true ) ⇒ undefined
参数:
file{File, id}File对象或这File对象的id
移除某一文件, 默认只会标记文件状态为已取消,如果第二个参数为 true 则会从 queue 中移除。
当我们调用了一下removeFile方法后,只是标记了一下这个文件的状态,我们用getFiles方法,其实还是可以看到,
这时我们可以再调用方法:
reset
- reset() ⇒ undefined
重置uploader。目前只重置了队列。就可以清除勾选的上传文件了
我的做法是,在uploadSuccess事件中,调用removeFile方法,注意这个事件也是针对一个文件的
//成功事件, 针对一个文件
uploader.on('uploadSuccess', function (file, response) {
uploader.removeFile(file);
});
最后在uploadFinished事件中,调用reset方法,再就可清空getfiles了。
// 所有文件上传成功后调用
uploader.on('uploadFinished', function () {
//清空队列
uploader.reset();
});
附,API地址:http://fex.baidu.com/webuploader/doc/index.html
WebUploader 解决文件多次上传和删除上传文件的问题的更多相关文章
- C# 选择文件、选择文件夹、打开文件(或者文件夹) 路径中获取文件全路径、目录、扩展名、文件名称 追加、拷贝、删除、移动文件、创建目录 修改文件名、文件夹名!!
https://www.cnblogs.com/zhlziliaoku/p/5241097.html 1.选择文件用OpenDialog OpenFileDialog dialog = new Ope ...
- 解决winscp中普通用户无法上传、删除、移动文件
上一篇博客中提到了winscp这个软件,这个软件可以利用sftp协议对linux服务器就行连接,然后方便我们对文件进行操作,但是如果是利用普通用户进行登陆的话,在对文件进行相关操作的时候会出现一些pe ...
- angularJs 多文件动态上传(删除其中一个文件的时候,要么file没被删除,要么删除了之后,点击事件失效)
<div cacModule.controller('CacScriptEditCtrl', CacScriptEditCtrl); CacScriptEditCtrl.$inject = [' ...
- shell定期转移日志文件到云盘并定期删除云盘文件
shell 脚本定期处理如下: cat /home/backup/logs_delete.sh #!/bin/bash /bin/find /data/logs/nginx/ -name " ...
- Inno如何在安装完成时删除指定的文件夹(下的所有文件及子目录)??
删除安装目录下的任意文件夹及下的所有文件及子目录,或者删除指定目录的文件夹,要如何做到呢?谢谢!! //删除文件 用 DeleteFile 只能删除一个文件,不能使用通配符来删除多个文件Dele ...
- windows C++删除非空文件夹
//add by zhuxy 递归删除文件夹 BOOL myDeleteDirectory(CString directory_path) //删除一个文件夹下的所有内容 { BOOL ret=TRU ...
- webuploader解决不能重复上传问题及一些常见问题处理
uploader = WebUploader.create({ swf: 'resources/js/webuploader-0.1.5/Uploader.swf', // 文件接收服务端. serv ...
- 解决IIS7.0服务和用户上传的文件分别部署在不同的电脑上时,解决权限的问题
为解决IIS服务和用户上传的文件分别部署在不同的电脑上时,解决权限的问题. 定义: A:iis服务器 B:文件服务器 步骤: 1.在B上创建一个用户[uploaduser](并设置密码) 2.给B上的 ...
- 功能强大的文件上传插件带上传进度-WebUploader
WebUploader是由Baidu WebFE(FEX)团队开发的一个以HTML5/FLASH构建的现代文件上传组件.在现代的浏览器里面能充分发挥HTML5的优势,同时又不摒弃主流IE浏览器,沿用老 ...
随机推荐
- iOS 计算时间差
/** * 计算指定时间与当前的时间差 * @param compareDate 某一指定时间 * @return 多少(秒or分or天or月or年)+前 (比如,3天前.10分钟前) */ +(NS ...
- 带jsk证书,请求https接口
首先是三个返回的实体类 BaseVo.java package https2; import java.io.Serializable; import java.lang.reflect.Invoca ...
- SpringBoot专题2----springboot与schedule的激情相拥
Schedule:计划,任务.就是我们常说的定时任务.这在我们做一些系统的时候,是经常需要用到的.比如:定时更新一些数据,定时更新索引,都需要这样的一个功能. 第一:创建一个名为springboot- ...
- PAT 1017 Queueing at Bank (模拟)
1017. Queueing at Bank (25) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue Supp ...
- SQSERVER--函数、开窗函数,-特殊的内容 (for xml path )
1.STUFF SQL Server之深入理解STUFF sql stuff函数用于删除指定长度的字符,并可以在制定的起点处插入另一组字符.sql stuff函数中如果开始位置或长度值是负数,或者如果 ...
- visual studio 下 C++生成dump文件
1 lib配置 项目-->属性-->配置属性-->链接器-->输入-->附加依赖项 增加dbghelp.lib 2 头文件 #include <imagehlp.h ...
- Spring Boot Dubbo Dubbok spring cloud
比较spring cloud和dubbo,各自的优缺点是什么 - 趁年轻再疯狂一次吧 - CSDN博客 https://blog.csdn.net/u010664947/article/details ...
- 客户也可以申请它使用的最后一个IP地址。如果该客户所在的网络中此IP仍然可用,服务器就可以准许该申请。
http://baike.baidu.com/item/IP地址 公有地址 公有地址(Public address)由Inter NIC(Internet Network Information Ce ...
- soe结果为栅格的处理方式
背景 ArcGIS for Server通过rest的形式提供功能在很多的时候,不能满足实际的需求.在日常工作中需要对Server的功能进行扩展,esri提供的一种方式就是使用soe的形式.官方给出的 ...
- HTTP缓存实现的原理
浏览器是如何知道使用缓存的,其实这都是通过http中,浏览器将最后修改时间发送请求给web服务器,web服务器收到请求后跟服务器上的文档最后修改的时间对比,如果web服务器上最新文档修改时间小于或者等 ...