文件屢次上傳有兩種狀況:html
1. 上傳前的屢次選擇web
2. 上傳成功後,再次選擇spa
其實API上,已經有了介紹了,不知道爲何有同窗仍是不知道如何作,我來拋磚引玉吧。code
配置項:htm
去重, 根據文件名字、文件大小和最後修改時間來生成hash Key.對象
將dupliacate設置爲true, 容許文件屢次上傳blog
其實有了這個配置就能夠了,不過uploader有個getFiles方法,這個方法容易上人產生誤解,隊列
一般會認爲getFiles方法 獲取的是準備要上傳的文件,其實否則。API介紹以下:事件
返回指定狀態的文件集合,不傳參數將返回全部狀態的文件。rem
這裏的狀態以下:
文件狀態值,具體包括如下幾種類型:
inited
初始狀態queued
已經進入隊列, 等待上傳progress
上傳中complete
上傳完成。error
上傳出錯,可重試interrupt
上傳中斷,可續傳。invalid
文件不合格,不能重試上傳。會自動從隊列中移除。cancelled
文件被移除。就是說,只要咱們的uploader對象沒有從新建立,那它會保存全部選擇的文件,
固然咱們也有方法,clear一下, 咱們看到有這樣的方法:
參數:
File對象或這File對象的id
移除某一文件, 默認只會標記文件狀態爲已取消,若是第二個參數爲 true
則會從 queue 中移除。
當咱們調用了一下removeFile方法後,只是標記了一下這個文件的狀態,咱們用getFiles方法,其實仍是能夠看到,
這時咱們能夠再調用方法:
重置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