github地址: https://github.com/nervgh/angular-file-upload
Directives(指令)
- nv-file-drop
<pre style="margin: 0px; padding: 0px;">
<elementnv-file-dropuploader="{FileUploader}"></element>
<elementnv-file-dropuploader="{FileUploader}"options="{Object}"filters="{String}"></element></pre>
屬性 uploader 必須是 FileUploader的一個實例。
屬性 **options **可能是 {FileItem} 的設(shè)置或者自定義設(shè)置。
屬性 **filters **可能是用,隔開的過濾器名稱,比如: 'filterName1, filterName2',這些過濾器必須如下預(yù)定義:
<pre style="margin: 0px; padding: 0px;">uploader.filters.push({name:'filterName1', fn:function() {/* your code here /}});
uploader.filters.push({name:'filterName2', fn:function() {/ your code here */}});</pre>
- nv-file-select
<pre style="margin: 0px; padding: 0px;">
<inputtype="file"nv-file-selectuploader="{FileUploader}"/>
<input type="file"nv-file-selectuploader="{FileUploader}" options="{Object}" filters="{String}"/>
- nv-file-over
<pre style="margin: 0px; padding: 0px;">
<elementnv-file-overuploader="{FileUploader}"></element>
<elementnv-file-overuploader="{FileUploader}"over-class="{String}"></element></pre>
Service(服務(wù))
FileUploader
屬性
url {String}: 上傳文件的服務(wù)器路徑
alias {String}: 包含文件的名稱,默認(rèn)是file
queue {Array}: 上傳隊列
progress {Number}: 上傳隊列的進度,只讀
headers {Object}: 上傳的頭文件信息, 瀏覽器需支持HTML5
formData {Array}: 與文件一起發(fā)送的表單數(shù)據(jù)
filters {Array}: 在文件加入上傳隊列之前應(yīng)用過濾器.,如果過濾器返回true則文件加入隊列中
autoUpload {Boolean}: 文件加入隊列之后自動上傳,默認(rèn)是false
method {String}: 請求方式,默認(rèn)是POST,瀏覽器需支持HTML5
removeAfterUpload {Boolean}: 文件上傳成功之后從隊列移除,默認(rèn)是false
isHTML5 {Boolean}: 如果瀏覽器支持HTML5上傳則返回true,只讀
isUploading {Boolean}: 文件正在上傳中返回true,只讀
queueLimit {Number} : 最大上傳文件數(shù)量(預(yù)定義)
withCredentials {Boolean} : 使用CORS,默認(rèn)是false, 瀏覽器需支持HTML5
方法
addToQueue function(files[, options[, filters]]) {: Add items to the queue, where files is a {FileList|File|HTMLInputElement}, options is an {Object} andfilters is a {String}. 添加項到上傳隊列中,files 是 {FileList|File|HTMLInputElement}, options 是 {Object} 以及 filters 是 {String}
removeFromQueue function(value) {: Remove an item from the queue, wherevalue is {FileItem} or index of item. 從上傳隊列移除項,value 可以是 {FileItem} 或者項的序號
clearQueue function() {: Removes all elements from the queue. 移除上傳隊列所有的元素
uploadItem function(value) {: Uploads an item, where value is {FileItem} or index of item. 上傳項, value 可以是 {FileItem} 或者項的序號
cancelItem function(value) {: Cancels uploading of item, where value is{FileItem} or index of item. 取消上傳的項
uploadAll function() {: Upload all pending items on the queue. 將上傳隊列中所有的項進行上傳
cancelAll function() {: Cancels all current uploads. 取消所有當(dāng)前上傳
destroy function() {: Destroys a uploader.
isFile function(value) {return {Boolean};}: Returns true if value is {File}.
isFileLikeObject function(value) {return {Boolean};}: Returns true if value is{FileLikeObject}.
getIndexOfItem function({FileItem}) {return {Number};}: Returns the index of the{FileItem} queue element. 返回項在上傳隊列中的序號
getReadyItems function() {return {Array.<FileItems>};}: Return items are ready to upload. 返回準(zhǔn)備上傳的項
getNotUploadedItems function() {return {Array.<FileItems>};}: Return an array of all pending items on the queue 返回上傳隊列中未上傳的項
回調(diào)函數(shù)
onAfterAddingFile function(item) {: 添加文件到上傳隊列后
onWhenAddingFileFailed function(item, filter, options) {: 添加文件到上傳隊列失敗后
onAfterAddingAll function(addedItems) {: 添加所選的所有文件到上傳隊列后
onBeforeUploadItem function(item) {: 文件上傳之前
onProgressItem function(item, progress) {: 文件上傳中
onSuccessItem function(item, response, status, headers) {: 文件上傳成功后
onErrorItem function(item, response, status, headers) {: 文件上傳失敗后
onCancelItem function(item, response, status, headers) { - 文件上傳取消后
onCompleteItem function(item, response, status, headers) {: 文件上傳完成后
onProgressAll function(progress) {: 上傳隊列的所有文件上傳中
onCompleteAll function() {: 上傳隊列的所有文件上傳完成后
成功上傳文件的回調(diào)函數(shù)順序是:onAfterAddingFile — onAfterAddingAll — onBeforeUploadItem — onProgressItem — onProgressAll — onSuccessItem — onCompleteItem — onCompleteAll
FileItem
屬性
url {String}: Path on the server in which this file will be uploaded 上傳文件的服務(wù)器路徑
alias {String}: Name of the field which will contain the file, default is file 包含文件的名稱,默認(rèn)是file
headers {Object}: Headers to be sent along with this file. HTML5 browsers only. 上傳的頭文件信息, 瀏覽器需支持HTML5
formData {Array}: Data to be sent along with this file 與文件一起發(fā)送的表單數(shù)據(jù)
method {String}: It's a request method. By default POST. HTML5 browsers only. 請求方式,默認(rèn)是POST,瀏覽器需支持HTML5
withCredentials {Boolean} : enable CORS. HTML5 browsers only. 使用CORS,默認(rèn)是false, 瀏覽器需支持HTML5
removeAfterUpload {Boolean}: Remove this file from the queue after uploading 上傳之后從上傳隊列移除該文件
index {Number} - A sequence number upload. Read only. 上傳文件在上傳隊列中的序號,只讀
progress {Number}: File upload progress percentage. Read only. 文件上傳的進度,只讀
isReady {Boolean} - File is ready to upload. Read only. 文件是否準(zhǔn)備好上傳,只讀
isUploading {Boolean}: true if the file is being uploaded. Read only. 文件是否正在上傳中,只讀
isUploaded {Boolean}: true if the file was uploaded. Read only. 文件是否已經(jīng)上傳,只讀
isSuccess {Boolean}: true if the file was uploaded successfully. Read only. 文件是否已經(jīng)上傳成功,只讀
isCancel {Boolean} : true if uploading was canceled. Read only. 文件是否取消上傳,只讀
isError {Boolean} - true if occurred error while file uploading. Read only. 文件是否上傳錯誤,只讀
uploader {Object}: Reference to the parent Uploader object for this file. Read only. 上傳該文件的Uploader ,只讀
方法
remove function() {: Remove this file from the queue 從上傳隊列移除該文件
upload function() {: Upload this file 上傳該文件
cancel function() {: Cancels uploading of this file 取消上傳該文件
回調(diào)函數(shù)
onBeforeUpload function() {: Fires before uploading an item. 上傳該文件之前
onProgress function(progress) {: On file upload progress. 上傳該文件的過程
onSuccess function(response, status, headers) {: On file successfully uploaded 成功上傳該文件后
onError function(response, status, headers) {: On upload error 上傳該文件出錯后
onCancel function(response, status, headers) { - On cancel uploading 取消上傳該文件后
onComplete function(response, status, headers) {: On file upload complete (independently of the sucess of the operation) 完成上傳該文件后
Filters(過濾器)
注冊過濾器:
var uploader =newFileUploader({
filters: [{
name:'yourName1',
// A user-defined filterfn:function(item) {
returntrue;
}
}]
});
// 另一種
uploader.filters.push({
name:'yourName2',
fn:function(item) {
returntrue;
}
});
預(yù)定義的過濾器:
folder
queueLimit