angularJS上传文件

<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,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",
showConfirmButton: false
});
$scope.processingInfo();
}
// console.info('onSuccessItem',headers);
};
uploader1.onErrorItem = function(fileItem,headers) {
// console.info('onErrorItem',headers);
};
uploader1.onCancelItem = function(fileItem,headers) {
// console.info('onCancelItem',headers);
};
uploader1.onCompleteItem = function(fileItem,headers) {
// console.info('onCompleteItem',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(){/*yourcodehere*/}});
uploader.filters.push({name:'filterName2',fn:function(){/*yourcodehere*/}});
  • 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

属性

  • queue{Array}: 上传队列

  • progress{Number}: 上传队列的进度,只读

  • headers{Object}: 上传的头文件信息, 浏览器需支持HTML5

  • formData{Array}:与文件一起发送的表单数据

  • filters{Array}: 在文件加入上传队列之前应用过滤器.,如果过滤器返回true文件加入队列中

  • autoUpload{Boolean}: 文件加入队列之后自动上传认是false

  • method{String}: 请求方式,认是POST,浏览器需支持HTML5

  • removeAfterUpload{Boolean}: 文件上传成功之后从队列移除,认是false

  • isHTML5{Boolean}:如果浏览器支持HTML5上传则返回true,只读

  • isuploading{Boolean}:文件正在上传中返回true,只读

  • queueLimit{Number}: 最大上传文件数量(预定义)

  • withCredentials{Boolean}: 使用CORS,认是false,浏览器需支持HTML5

方法

  • addToQueuefunction(files[,options[,filters]]) {: Add items to the queue,wherefilesis a{FileList|File|HTMLInputElement},optionsis an{Object}andfiltersis a{String}. 添加项到上传队列中,files{FileList|File|HTMLInputElement},options{Object}以及filters{String}

  • removeFromQueuefunction(value) {: Remove an item from the queue,monospace;font-size:13.6000003814697px;">valueis{FileItem}or index of item. 从上传队列移除项,value可以是或者项的序号

  • clearQueuefunction() {: Removes all elements from the queue. 移除上传队列所有的元素

  • uploadItemfunction(value) {: Uploads an item,monospace;font-size:13.6000003814697px;">{FileItem}or index of item. 上传项,value可以是{FileItem}或者项的序号

  • cancelItemfunction(value) {: Cancels uploading of item,monospace;font-size:13.6000003814697px;">{FileItem}or index of item. 取消上传的项

  • uploadAllfunction() {: Upload all pending items on the queue. 将上传队列中所有的项进行上传

  • cancelAllfunction() {: Cancels all current uploads. 取消所有当前上传

  • destroyfunction() {: Destroys a uploader.

  • isFilefunction(value) {return {Boolean};}: Returns true if value is{File}.

  • isFileLikeObject{FileLikeObject}.

  • getIndexOfItemfunction({FileItem}) {return {Number};}: Returns the index of the{FileItem}queue element. 返回项在上传队列中的序号

  • getReadyItemsfunction() {return {Array.<FileItems>};}: Return items are ready to upload. 返回准备上传的项

  • getNotUploadedItemsfunction() {return {Array.<FileItems>};}: Return an array of all pending items on the queue 返回上传队列中未上传的项

回调函数


成功上传文件的回调函数顺序是: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. 上传的头文件信息, 浏览器需支持HTML5

  • formData{Array}: Data to be sent along with this file 与文件一起发送的表单数据

  • method{String}: It's a request method. By defaultPOST. HTML5 browsers only. 请求方式,认是POST,浏览器需支持HTML5

  • withCredentials{Boolean}: enable CORS. HTML5 browsers only. 使用CORS,认是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. 文件是否准备好上传,只读

  • isuploading{Boolean}:trueif the file is being uploaded. Read only. 文件是否正在上传中,只读

  • isuploadedtrueif the file was uploaded. Read only. 文件是否已经上传,只读

  • isSuccesstrueif the file was uploaded successfully. Read only. 文件是否已经上传成功,只读

  • isCanceltrueif uploading was canceled. Read only. 文件是否取消上传,只读

  • isError{Boolean}-trueif occurred error while file uploading. Read only. 文件是否上传错误,只读

  • uploader{Object}: Reference to the parentUploaderobject for this file. Read only. 上传文件Uploader,只读

  • removefunction() {: Remove this file from the queue 从上传队列移除该文件

  • uploadfunction() {: Upload this file 上传文件

  • cancelfunction() {: Cancels uploading of this file 取消上传文件

  • onBeforeUploadfunction() {: Fires before uploading an item. 上传文件之前

  • onProgressfunction(progress) {: On file upload progress. 上传文件的过程

  • onSuccessfunction(response,headers) {: On file successfully uploaded 成功上传文件

  • onError上传该文件出错后

  • onCancel上传该文件

  • onComplete上传该文件

  • Filters(过滤器)

    注册过滤器:

    varuploader=newFileUploader({
    filters:[{
    name:'yourName1',//Auser-definedfilterfn: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

    相关文章

    ANGULAR.JS:NG-SELECTANDNG-OPTIONSPS:其实看英文文档比看中...
    AngularJS中使用Chart.js制折线图与饼图实例  Chart.js 是...
    IE浏览器兼容性后续前言 继续尝试解决IE浏览器兼容性问题,...
    Angular实现下拉菜单多选写这篇文章时,引用文章地址如下:h...
    在AngularJS应用中集成科大讯飞语音输入功能前言 根据项目...
    Angular数据更新不及时问题探讨前言 在修复控制角标正确变...