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

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. HDU 5421 Victor and String(回文树)

    Victor and String Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 524288/262144 K (Java/Othe ...

  2. java编程思想 英文版 打卡

    计划 2017.3.1 购入 准备花一个月的时间阅读完, 共1500页,最后两章是GUI的内容,只需要到1300页就行了 目的有三: 熟悉java基础 提升英语阅读能力,好久没读英文书籍了 补补oop ...

  3. 巨蟒python全栈开发数据库前端6:事件onclick的两种绑定方式&&onblur和onfocus事件&&window.onload解释&&小米商城讲解

    1.回顾上节内容(JavaScript) 一.JavaScript概述 1.ECMAScript和JavaScript的关系 2.ECMAScript的历史 3.JavaScript是一门前后端都可以 ...

  4. kafka 自启脚本

    每次使用的时候都要手动去启动真头痛! 解决办法,自启吧! 方法一: 方法一: /etc/rc.local中添加 文件地址记得替换掉 ,我没使用这种,发现不是每次都行,就换了第二种方法 /usr/loc ...

  5. 3 CActiveXUI的一个Bug

    如果主窗口直接用变量生成,则关闭窗口时会产生崩溃            如果用new的方式生成,则不会崩溃,所以给出一个临时的快速解决方案,即主窗口都用new生成,_tWinMain改为下面这样: i ...

  6. 如何基于Go搭建一个大数据平台

    如何基于Go搭建一个大数据平台 - Go中国 - CSDN博客 https://blog.csdn.net/ra681t58cjxsgckj31/article/details/78333775 01 ...

  7. iframe下元素定位

    1.iframe基础知识: <frameset>生成的框架结构是依赖上级空间尺寸的,它的宽度或者高度必须有一个和上级框架相同.而<iframe>浮动框架可以完全由指定宽度和高度 ...

  8. pandas 修改指定列中所有内容

    如下图: 读取出来的 DataFrame “code” 列内容格式为:“浪潮信息(000977.XSHE)” 格式,目标效果是:000977.XSHE 代码: df["code"] ...

  9. Linux内核学习资料

    1.为什么计算机的学生要学习Linux开源技术 http://tinylab.org/why-computer-students-learn-linux-open-source-technologie ...

  10. Ubuntu系统Python3相关环境或模块安装

    前提:一般用户安装都命令前都需要sudo ,或者在root用户下 1.Ubuntu 16.04 安装PyCharm Ubuntu 16.04 安装PyCharm 本文通过第三方源安装PyCharm,好 ...