美文网首页Angular2.0我爱编程
Angular2使用ng2-file-upload上传文件

Angular2使用ng2-file-upload上传文件

作者: 杀个程序猿祭天 | 来源:发表于2018-03-27 16:06 被阅读63次

Angular2中有两个比较好用的上传文件的第三方库,一个是ng2-file-upload,一个是ng2-uploader。ng2-uploader是一个轻便的上传文件的支持库,功能较弱,而ng2-file-upload是一个功能比较全面的上传文件的支持库。这里主要介绍一下ng2-file-upload的使用。

以下以Mac OS操作系统介绍。

作者:Shmily落墨

链接:https://www.jianshu.com/p/0741186f60ab

           https://segmentfault.com/a/1190000007886391

            http://www.php.cn/js-tutorial-399182.html

來源:简书

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

1. 安装

使用npm安装即可。在项目中打开“终端”,运行命令:

sudo npm install ng2-file-upload --save

如果是以systemjs的方式打包,安装完成后需要打开systemjs.config.js文件,在System.config的map字段中的最后一行输入以下字段:

'ng2-file-upload':'npm:ng2-file-upload'

在System.config的packages字段中的最后一行输入:

'ng2-file-upload': {        main:'index.js',        defaultExtension:'js'}

之后便可以在项目中使用了。

2. 使用

在需要用到的模块中引用模块:

import{ CommonModule }from'@angular/common';import{ FileUploadModule }from'ng2-file-upload';

然后在@NgModule的imports字段中引用CommonModule和FileUploadModule。

在对应需要使用的组件内引用:

import{ FileUploader }from'ng2-file-upload';

初始化FileUploader:

uploader:FileUploader =newFileUploader({        url:"http://www.download.com:80/uploadFile",      method:"POST",        itemAlias:"uploadedfile"});

初始化FileUploader需要传入FileUploaderOptions类型的参数:

| 参数名 | 参数类型 | 是否是可选值 | 参数说明 |

|:---- --:|:--------:|:-------------:|:--------:|

| allowedMimeType | Array | 可选值 |  |

| allowedFileType | Array | 可选值 | 允许上传的文件类型 |

| autoUpload | boolean | 可选值 | 是否自动上传 |

| isHTML5 | boolean | 可选值 | 是否是HTML5 |

| filters | Array | 可选值 |  |

| headers | Array | 可选值 | 上传文件的请求头参数 |

| method | string | 可选值 | 上传文件的方式 |

| authToken | string | 可选值 | auth验证的token |

| maxFileSize | number | 可选值 | 最大可上传文件的大小 |

| queueLimit | number | 可选值 |  |

| removeAfterUpload | boolean | 可选值 | 是否在上传完成后从队列中移除 |

| url | string | 可选值 | 上传地址 |

| disableMultipart | boolean | 可选值 |  |

| itemAlias | string | 可选值 | 文件标记/别名 |

| authTokenHeader | string | 可选值 | auth验证token的请求头 |

2.1 选择文件

在组件对应的HTML模版中设置input标签:

在组件.ts文件中设置声明函数:

selectedFileOnChanged() {// 这里是文件选择完成后的操作处理}

选择文件默认支持选择单个文件,如需支持文件多选,请在标签中添加multiple属性,即:

2.2 拖拽文件

拖拽文件默认支持多文件拖拽。

对块级元素进行设置(这里以div标签为例):

在组件.ts文件中设置声明函数:

fileOverBase(event) {// 拖拽状态改变的回调函数}fileDropOver(event) {// 文件拖拽完成的回调函数}

2.3 文件上传

FileUploader有个数组类型的属性queue,里面是所有拖拽的和选择的文件,只要操作这个属性便可以进行文件上传。

this.uploader.queue[0].onSuccess =(response, status, headers) =>{// 上传文件成功  if(status ==200) {// 上传文件后获取服务器返回的数据lettempRes =JSON.parse(response);            }else{// 上传文件后获取服务器返回的数据错误        }};this.uploader.queue[0].upload();// 开始上传

3. FileUploader详解

FileUploader是ng2-file-upload最主要的部件,里面包含了所有对文件的处理。

3.1 属性详解

isUploading:[boolean]是否正在上传文件中。

queue:[array]已经拖拽或选择的所有文件。

progress:[number]所有的上传文件的整体进度。

options:[FileUploaderOptions]上传文件的配置信息,前面已经介绍过。

3.2 方法详解

setOptions(options: FileUploaderOptions): void;

设置上传文件的配置信息。

addToQueue(files: File[], options?: FileUploaderOptions, filters?: FilterFunction[] | string): void;

手动添加文件到FileUploader的上传队列中。

removeFromQueue(value: FileItem): void;

从FileUploader的上传队列中移除指定文件。

clearQueue(): void;

清除FileUploader上传队列中的所有文件。

uploadItem(value: FileItem): void;

上传指定文件。

cancelItem(value: FileItem): void;

取消指定文件的上传。

uploadAll(): void;

上传FileUploader的上传队列中的所有文件。

cancelAll(): void;

取消FileUploader的上传队列中的所有文件的上传。

isFile(value: any): boolean;

判断是否是文件。

getIndexOfItem(value: any): number;

获取文件在FileUploader上传队列中的位置。

getNotUploadedItems(): Array;

获取FileUploader上传队列中的所有未上传的文件。

getReadyItems(): Array;

获取FileUploader上传队列中的所有准备上传的文件。

destroy(): void;

销毁FileUploader实例。

3.3 监听详解

onAfterAddingAll(fileItems: any): any;

添加完所有文件之后的回调

返回:

fileItems - 添加的文件的数组

onBuildItemForm(fileItem: FileItem, form: any): any;

创建文件之后的回调

返回:

fileItem - 创建的文件

form - 添加的方式

onAfterAddingFile(fileItem: FileItem): any;

添加一个文件之后的回调

返回:

fileItem - 添加的文件

onWhenAddingFileFailed(item: FileLikeObject, filter: any, options: any): any;

添加文件失败的回调

返回:

item -

filter -

options -

onBeforeUploadItem(fileItem: FileItem): any;

要上传文件之前的回调

返回:

fileItem - 将要上传的文件

onProgressItem(fileItem: FileItem, progress: any): any;

上传文件的进度(开始上传后调用非常频繁)

返回:

fileItem - 正在上传的文件

progress - 该文件的上传进度

onProgressAll(progress: any): any;

整体的上传进度的回调(开始上传后调用非常频繁)

返回:

progress - 整体的上传文件的进度

onSuccessItem(item: FileItem, response: string, status: number, headers: ParsedResponseHeaders): any;

上传一个文件成功的回调

返回:

item - 上传成功的文件

response - 上传成功后服务器的返回

status - 状态码

headers - 上传成功后服务器的返回的返回头

onErrorItem(item: FileItem, response: string, status: number, headers: ParsedResponseHeaders): any;

上传一个文件错误的回调

返回:

item - 上传错误的文件

response - 返回的错误

status - 状态码

headers - 返回的错误返回头

onCancelItem(item: FileItem, response: string, status: number, headers: ParsedResponseHeaders): any;

取消上传一个文件的回调

返回:

item - 取消上传的文件

response - 取消的返回信息

status - 状态码

headers - 取消的返回信息的返回头

onCompleteItem(item: FileItem, response: string, status: number, headers: ParsedResponseHeaders): any;

完成上传一个文件的回调

返回:

item - 上传成功的文件

response - 上传成功后服务器的返回

status - 状态码

headers - 上传成功后服务器的返回的返回头

onCompleteAll(): any;

完成上传所有文件的回调

4. FileItem详解

FileItem是FileUploader中queue属性的元素类型,在FileUploader中存储的文件的基本类型。

4.1 属性详解

alias[string]: 上传的标志/别名。

url[string]: 地址。

method[string]: 上传的方法。

headers[any]: 上传的头部参数。

withCredentials:[boolean]: 是否使用证书。

formData[any]: 格式化数据?

isReady[boolean]: 是否准备上传(是否可以上传)。

isUploading[boolean]: 是否正在上传。

isUploaded[boolean]: 是否已经上传过。

isSuccess[boolean]: 是否上传成功。

isCancel[boolean]: 是否取消上传。

isError[boolean]: 是否上传错误。

progress[number]: 上传进度。

index[number]: 在队列中的位置。

4.2 方法详解

upload(): void;

开始上传这个文件。

cancel(): void;

取消上传这个文件。

remove(): void;

将这个文件从上传队列中移除。

4.3 监听详解

onBeforeUpload(): void;

开始上传之前的回调函数。

onBuildForm(form: any): any;

创建文件的回调函数。

返回:

form - 文件来源。

onProgress(progress: number): any;

上传文件的进度回调函数。

返回:

progress - 上传文件的进度。

onSuccess(response: string, status: number, headers: ParsedResponseHeaders): any;

上传文件成功的回调函数。

返回:

response - 成功后的回调数据

status - 状态码

headers - 回调数据的返回头

onError(response: string, status: number, headers: ParsedResponseHeaders): any;

上传文件错误的回调函数。

onCancel(response: string, status: number, headers: ParsedResponseHeaders): any;

取消上传的回调函数。

onComplete(response: string, status: number, headers: ParsedResponseHeaders): any;

上传文件完成的回调函数。

作者:Shmily落墨

链接:https://www.jianshu.com/p/0741186f60ab

來源:简书

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

相关文章

  • Angular2使用ng2-file-upload上传文件

    Angular2中有两个比较好用的上传文件的第三方库,一个是ng2-file-upload,一个是ng2-uplo...

  • Angular2使用ng2-file-upload上传文件

    Angular2中有两个比较好用的上传文件的第三方库,一个是ng2-file-upload,一个是ng2-uplo...

  • angular使用ng2-file-upload上传文件

    我使用的是ng2-file-upload,网址:https://www.npmjs.com/package/ng2...

  • 关于上传文件和提交表单的结合+复制文件问题

    使用webuploader上传文件,还要提交文件对应的属性。 思路:使用webuploader选择文件,上传文件,...

  • iOS文件上传

    文件上传的步骤 使用NSURLConnection上传文件例子 使用AFN框架上传图片例子 获取文件的MIMETy...

  • java web文件上传

    什么是文件上传 为什么使用文件上传 文件上传原理分析 上传文件注意事项 1,请求方式必须是post. 2,需要使用...

  • angular2+nodejs实现图片上传

    在使用angular2进行图片上传的时候,遇到了各种各样的问题。在多番尝试之后最终成功上传图片,下面将我的方法分享...

  • NSURLConnection笔记-上传文件

    使用NSURLConnection上传文件上传文件,使用POST还是PUT请求?根据原来HTTP的定义使用PUT来...

  • 网络03

    NSURLSession实现文件上传 实现文件上传的步骤 文件上传设置请求体的格式 使用NSURLSession上...

  • 上传文件

    单文件和多文件上传单文件上传(只能上传单个文件) 多文件上传(可以上传单个,多个使用数组方式) 提交文本信息和文件...

网友评论

    本文标题:Angular2使用ng2-file-upload上传文件

    本文链接:https://www.haomeiwen.com/subject/abrscftx.html