文件多次上传有两种情况:

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 解决文件多次上传和删除上传文件的问题的更多相关文章

  1. C# 选择文件、选择文件夹、打开文件(或者文件夹) 路径中获取文件全路径、目录、扩展名、文件名称 追加、拷贝、删除、移动文件、创建目录 修改文件名、文件夹名!!

    https://www.cnblogs.com/zhlziliaoku/p/5241097.html 1.选择文件用OpenDialog OpenFileDialog dialog = new Ope ...

  2. 解决winscp中普通用户无法上传、删除、移动文件

    上一篇博客中提到了winscp这个软件,这个软件可以利用sftp协议对linux服务器就行连接,然后方便我们对文件进行操作,但是如果是利用普通用户进行登陆的话,在对文件进行相关操作的时候会出现一些pe ...

  3. angularJs 多文件动态上传(删除其中一个文件的时候,要么file没被删除,要么删除了之后,点击事件失效)

    <div cacModule.controller('CacScriptEditCtrl', CacScriptEditCtrl); CacScriptEditCtrl.$inject = [' ...

  4. shell定期转移日志文件到云盘并定期删除云盘文件

    shell 脚本定期处理如下: cat /home/backup/logs_delete.sh #!/bin/bash /bin/find /data/logs/nginx/ -name " ...

  5. Inno如何在安装完成时删除指定的文件夹(下的所有文件及子目录)??

    删除安装目录下的任意文件夹及下的所有文件及子目录,或者删除指定目录的文件夹,要如何做到呢?谢谢!! //删除文件    用 DeleteFile 只能删除一个文件,不能使用通配符来删除多个文件Dele ...

  6. windows C++删除非空文件夹

    //add by zhuxy 递归删除文件夹 BOOL myDeleteDirectory(CString directory_path) //删除一个文件夹下的所有内容 { BOOL ret=TRU ...

  7. webuploader解决不能重复上传问题及一些常见问题处理

    uploader = WebUploader.create({ swf: 'resources/js/webuploader-0.1.5/Uploader.swf', // 文件接收服务端. serv ...

  8. 解决IIS7.0服务和用户上传的文件分别部署在不同的电脑上时,解决权限的问题

    为解决IIS服务和用户上传的文件分别部署在不同的电脑上时,解决权限的问题. 定义: A:iis服务器 B:文件服务器 步骤: 1.在B上创建一个用户[uploaduser](并设置密码) 2.给B上的 ...

  9. 功能强大的文件上传插件带上传进度-WebUploader

    WebUploader是由Baidu WebFE(FEX)团队开发的一个以HTML5/FLASH构建的现代文件上传组件.在现代的浏览器里面能充分发挥HTML5的优势,同时又不摒弃主流IE浏览器,沿用老 ...

随机推荐

  1. A1261. happiness(吴确)[二元组暴力最小割建模]

    A1261. happiness(吴确) 时间限制:500ms   内存限制:512.0MB   总提交次数:158   AC次数:72   平均分:56.71   将本题分享到:        查看 ...

  2. Mac中pico编辑器的使用方法

    Pico是一个由华盛顿大学(University of Washington)计算与通讯研究所(Computing and Communications Group)编写并维护的文本编辑程序,在多个版 ...

  3. CSS 伪元素 使用参考

    伪元素可以做得事情是非常多的,详情大家可以参考这里 大放异彩的伪元素——可以做什么? 本篇主要讲两个伪元素:before和:after的几个要点: 1.:before和:after是加在元素的里面,也 ...

  4. 160802、1.06s删除10w条重复记录只保留一条(mysql)及linux删除乱码文件

    上次发表过的一遍删除重复记录的文章,其中最优的方案三删除1w条也花了0.07秒而2w条就已经花掉了4秒.今天进行了进一步优化,测试删除10w条只花了1.06秒.速度提升了很多. 建表语句 CREATE ...

  5. CodeForces 157A Game Outcome

    A. Game Outcome time limit per test 2 seconds memory limit per test 256 megabytes input standard inp ...

  6. Top15的golang学习资源网站

    We decided to ask the Go expert and CTO at QArea’s, Maksim Kuharenko, to share his personal list of ...

  7. ubuntu 使用串口picocom

    连上USB转串口 查看是否识别串口     dmesg | grep ttyUSB0 安装(mint / ubuntu): $ sudo apt-get install picocom 使用: 先赋予 ...

  8. I/O多路复用技术(multiplexing)是什么?

    作者:知乎用户链接:https://www.zhihu.com/question/28594409/answer/52763082来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注 ...

  9. 解决 free(): invalid pointer: 0x00000000019ff700 运行时报错(caffe)(libtool使用)

    编译成功,运行时报错: 在使用 pytorch or tensorflow or caffe 时,都可能存在这个问题: *** Error in `xxx': free(): invalid poin ...

  10. SQL 2005 分页存储过程

    -- ============================================= -- Description:   <高效分页存储过程,适用于Sql2005以上> -- ...