<div class="col-lg-1 col-sm-1 pull-right">
<a id="fileb" href="javascript:;" name="file" ng-show="jIn">
<input type="file" nv-file-select="" uploader="uploader1" multiple /><a class="btn btn-info btn-sm" ng-show="jIn">導入</a>
</a>
</div>
//導入
var uploader1 = $scope.uploader1 = new FileUploader({
url: 'http://localhost:8080/importWorkBook?loanChannel=005',
autoUpload:true
});
// FILTERS
uploader1.filters.push({
name: 'customFilter',
fn: function(item /*{File|FileLikeObject}*/, options) {
return this.queue.length < 10;
}
});
// CALLBACKS
uploader1.onWhenAddingFileFailed = function(item /*{File|FileLikeObject}*/, filter, options) {
// console.info('onWhenAddingFileFailed', item, filter, options);
};
uploader1.onAfterAddingFile = function(fileItem) {
// console.info('onAfterAddingFile', fileItem);
};
uploader1.onAfterAddingAll = function(addedFileItems) {
// console.info('onAfterAddingAll', addedFileItems);
};
uploader1.onBeforeUploadItem = function(item) {
// console.info('onBeforeUploadItem', item);
};
uploader1.onProgressItem = function(fileItem, progress) {
// console.info('onProgressItem', fileItem, progress);
};
uploader1.onProgressAll = function(progress) {
// console.info('onProgressAll', progress);
};
uploader1.onSuccessItem = function(fileItem, response, status, headers) {
if(response.returnMsg == "ok"){
swal({
title : "導入成功",
text : "",
type : "success",
timer: 1300,
showConfirmButton: false
});
$scope.processingInfo();
}else{
swal({
title : "導入失敗",
text : "對不起,數據有誤,導入失敗!",
type : "error",
timer: 1300,
showConfirmButton: false
});
$scope.processingInfo();
}
// console.info('onSuccessItem', fileItem, response, status, headers);
};
uploader1.onErrorItem = function(fileItem, response, status, headers) {
// console.info('onErrorItem', fileItem, response, status, headers);
};
uploader1.onCancelItem = function(fileItem, response, status, headers) {
// console.info('onCancelItem', fileItem, response, status, headers);
};
uploader1.onCompleteItem = function(fileItem, response, status, headers) {
// console.info('onCompleteItem', fileItem, response, status, headers);
};
uploader1.onCompleteAll = function() {
// console.info('onCompleteAll');
};
// console.info('uploader', uploader);
控制多文件上傳及文件類型
accept="image/*"
multiple
Directives(指令)
nv-file-drop
<!-- 最少配置 --><elementnv-file-dropuploader="{FileUploader}"></element><!-- 最多配置 --><elementnv-file-dropuploader="{FileUploader}"options="{Object}"filters="{String}"></element>
屬性 uploader 必須是
FileUploader的一個實例。
屬性 options 可能是 {FileItem}
的設置或者自定義設置。
屬性 filters 可能是用,隔開的過濾器名稱,比如: 'filterName1,
filterName2',
這些過濾器必須如下預定義:
uploader.filters.push({name:'filterName1', fn:function() {/* your code here */}}); uploader.filters.push({name:'filterName2', fn:function() {/* your code here */}});
nv-file-select
<!-- 最少配置 --><inputtype="file"nv-file-selectuploader="{FileUploader}"/><!-- 最多配置 --><inputtype="file"nv-file-selectuploader="{FileUploader}"options="{Object}"filters="{String}"/>
nv-file-over
<!-- 最少配置 --><elementnv-file-overuploader="{FileUploader}"></element><!-- 最多配置 --><elementnv-file-overuploader="{FileUploader}"over-class="{String}"></element>
Service(服務)
FileUploader
FileUploader
屬性
url
{String}
: 上傳文件的服務器路徑alias
{String}
: 包含文件的名稱,默認是file
queue
{Array}
: 上傳隊列progress
{Number}
: 上傳隊列的進度,只讀headers
{Object}
: 上傳的頭文件信息, 瀏覽器需支持HTML5formData
{Array}
: 與文件一起發送的表單數據filters
{Array}
: 在文件加入上傳隊列之前應用過濾器.,如果過濾器返回true則文件加入隊列中
autoUpload
{Boolean}
: 文件加入隊列之後自動上傳,默認是falsemethod
{String}
: 請求方式,默認是POST,瀏覽器需支持HTML5removeAfterUpload
{Boolean}
: 文件上傳成功之後從隊列移除,默認是falseisHTML5
{Boolean}
: 如果瀏覽器支持HTML5上傳則返回true,只讀isUploading
{Boolean}
: 文件正在上傳中返回true,只讀queueLimit
{Number}
: 最大上傳文件數量(預定義)withCredentials
{Boolean}
: 使用CORS,默認是false, 瀏覽器需支持HTML5
方法
addToQueue
function(files[, options[, filters]]) {
: Add items to the queue, wherefiles
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, wherevalue
is{FileItem}
or index of item. 上傳項,value
可以是{FileItem}
或者項的序號cancelItem
function(value) {
: Cancels uploading of item, wherevalue
is{FileItem}
or index of item. 取消上傳的項uploadAll
function() {
: Upload all pending items on the queue. 將上傳隊列中所有的項進行上傳cancelAll
function() {
: Cancels all current uploads. 取消所有當前上傳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. 返回準備上傳的項getNotUploadedItems
function() {return {Array.<FileItems>};}
: Return an array of all pending items on the queue 返回上傳隊列中未上傳的項
回調函數
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() {
: 上傳隊列的所有文件上傳完成後
成功上傳文件的回調函數順序是:onAfterAddingFile — onAfterAddingAll — onBeforeUploadItem — onProgressItem — onProgressAll — onSuccessItem — onCompleteItem — onCompleteAll
FileItem
屬性
url
{String}
: Path on the server in which this file will be uploaded 上傳文件的服務器路徑alias
{String}
: Name of the field which will contain the file, default isfile 包含文件的名稱,默認是file
headers
{Object}
: Headers to be sent along with this file. HTML5 browsers only. 上傳的頭文件信息, 瀏覽器需支持HTML5formData
{Array}
: Data to be sent along with this file 與文件一起發送的表單數據method
{String}
: It's a request method. By defaultPOST
. HTML5 browsers only. 請求方式,默認是POST,瀏覽器需支持HTML5withCredentials
{Boolean}
: enable CORS. HTML5 browsers only. 使用CORS,默認是false, 瀏覽器需支持HTML5removeAfterUpload
{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. 文件是否準備好上傳,只讀isUploading
{Boolean}
:true
if the file is being uploaded. Read only. 文件是否正在上傳中,只讀isUploaded
{Boolean}
:true
if the file was uploaded. Read only. 文件是否已經上傳,只讀isSuccess
{Boolean}
:true
if the file was uploaded successfully. Read only. 文件是否已經上傳成功,只讀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 parentUploader
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 取消上傳該文件
回調函數
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; } });
預定義的過濾器:
folder
queueLimit
github地址: https://github.com/nervgh/angular-file-upload/wiki/Module-API