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, 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}: 上传的头文件信息, 浏览器需支持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

方法

  • 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.  取消所有当前上传
  • 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 is file 
    包含文件的名称,默认是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 default POST.
    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}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 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  取消上传该文件

回调函数

  • 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

时间: 2024-10-26 01:48:15

angularJS上传文件的相关文章

angularJs上传文件(非form上传)

angular.js:13920 Broken interceptor detected: Config object not supplied in rejection: <input type="file" id="file{{$index}}" class="file" ngf-select ngf-change="cacScriptUploadVm.views.changeAttach($file,$index)"

angularJS 在edge浏览器上传文件,无法主动触发ng-click

今天发现的问题 在谷歌浏览器一直运行良好的功能,在edge浏览器不能使用. 代码参考我的另一篇博客:WebAPI Angularjs 上传文件 不能运行的原因 下图红框中的代码在edge浏览器中无法执行,也就不能执行下面的上传文件代码. 解决方案 既然原因找到了,就可以寻找解决方案了,找了一下午,有一篇有用的文章:angular ng-click程序触发,方法 我的解决方案(注意加粗加大的代码[关键哟]) JS代码如下: define(['app'], function (app) { app.

[Angularjs]ng-file-upload上传文件

写在前面 最近在弄文档库的H5版,就查找了下相关的上传组件,发现了ng-upload的东东,推荐给大家. 系列文章 [Angularjs]ng-select和ng-options [Angularjs]ng-show和ng-hide [Angularjs]视图和路由(一) [Angularjs]视图和路由(二) [Angularjs]视图和路由(三) [Angularjs]视图和路由(四) [Angularjs]ng-class,ng-class-even,ng-class-odd [Angul

angulaijs中的ng-upload-file与阿里云oss服务的结合,实现在浏览器端上传文件到阿里云(速度可以达到1.5M)

angularjs结合aliyun浏览器端oos文件上传加临时身份验证例子 在服务端获取sts 源码: public class StsServiceSample { // 目前只有"cn-hangzhou"这个region可用, 不要使用填写其他region的值 //<setting name="accessKeyId" value="H6JSh0Y****z2cGa" /> //<setting name="ecr

万家报账平台没有“上传文件”按钮的解决办法

在有的电脑没有"上传文件"的按钮? 第一步:首先检查浏览器设置. 第二步:找到IE的Internet选项菜单,开启菜单栏的根据下列方面找,如下图: 第三步:找到Internet选项后,点击,选择安全选项卡,并点击"自定义级别" 第四步:找到"将文件上载到服务器时包含本地目录路径"选择"启用".然后点击确定关闭IE,重启打开. 第五步:更新浏览器的flash版本.在百度中搜索"flash player官网"即

通过jQuery Ajax使用FormData对象上传文件

转自:http://www.cnblogs.com/labnizejuly/p/5588444.html FormData对象,是可以使用一系列的键值对来模拟一个完整的表单,然后使用XMLHttpRequest发送这个"表单". <form id="uploadForm" enctype="multipart/form-data"> <input id="file" type="file"

数据采集之Web端上传文件到Hadoop HDFS

前言 最近在公司接到一个任务,是关于数据采集方面的. 需求主要有3个: 通过web端上传文件到HDFS; 通过日志采集的方式导入到HDFS; 将数据库DB的表数据导入到HDFS. 正好最近都有在这方面做知识储备.正所谓养兵千日,用兵一时啊.学习到的东西只有应用到真实的环境中才有意义不是么. 环境 这里只做模拟环境,而不是真实的线上环境,所以也很简单,如果要使用的话还需要优化优化. OS Debian 8.7 Hadoop 2.6.5 SpringBoot 1.5.1.RELEASE 说明一下,这

ssh连接服务器以及scp上传文件方法

本地控制台输入 ssh [email protected]外网ip或内网ip,举例:ssh [email protected]      这是用用户名为root的用户登录192.168.133.196这个地址所在的后台.如果提示以下红色部分错误: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @ @@@@@@

php+curl上传文件

因为公司项目用java做的,需要我这边用php上传文件.只给了个接口,参数都不明确,然后这边不提交表单,在生成pdf之后就立马上传.用了php+curl,总是没上传成功,这里看到了篇文章http://blog.sina.com.cn/s/blog_709475a101013dlf.html,希望可以借鉴.还有这篇http://www.cnblogs.com/jackluo/p/4113255.html