Angular2中有两个比较好用的上传文件的第三方库,一个是ng2-file-upload,一个是ng2-uploader。ng2-uploader是一个轻便的上传文件的支持库,功能较弱,而ng2-file-upload是一个功能比较全面的上传文件的支持库。这里主要介绍一下ng2-file-upload的使用。
ng2-file-upload文件上传
1、安装ng2-file-upload模块
npm install ng2-file-upload --save
2、如果使用systemjs打包,需要在配置systemjs.config.js文件
A、在System.config的map字段中的最后一行输入以下字段:
'ng2-file-upload':'npm:ng2-file-upload'
B、在System.config的packages字段中的最后一行输入:
'ng2-file-upload': { main: 'index.js', defaultExtension: 'js' }
3、在app.module.ts文件中,或者您有多个模块,在需要的模块中引入一下模块
import { CommonModule } from '@angular/common'; import { FileUploadModule } from 'ng2-file-upload';
然后在@NgModule的imports字段中引用CommonModule和FileUploadModule。
@NgModule({ imports: [ CommonModule, FileUploadModule ] }
4、在自定义的上传组件中使用ng2-file-upload
import {Component, OnInit} from "@angular/core"; // A: 引入FileUpload模块 import {FileUploader} from "ng2-file-upload"; @Component({ selector: "my-file", templateUrl: "./app/file.html" }) export class HomeFileComponent implements OnInit { // B: 初始化定义uploader变量,用来配置input中的uploader属性 public uploader:FileUploader = new FileUploader({ url: "http://localhost:3000/ng2/uploadFile", method: "POST", itemAlias: "uploadedfile" }); // C: 定义事件,选择文件 selectedFileOnChanged(event:any) { // 打印文件选择名称 console.log(event.target.value); } // D: 定义事件,上传文件 uploadFile() { // 上传 this.uploader.queue[0].onSuccess = function (response, status, headers) { // 上传文件成功 if (status == 200) { // 上传文件后获取服务器返回的数据 let tempRes = JSON.parse(response); } else { // 上传文件后获取服务器返回的数据错误 alert(""); } }; this.uploader.queue[0].upload(); // 开始上传 } }
5、对应的html内容
<input type="file" ng2FileSelect [uploader]="uploader" (change)="selectedFileOnChanged($event)" /> selectedFileOnChanged($event)在 .ts文件中定义 selectedFileOnChanged(event: any) { console.log(event.target.value); }
选择文件默认支持选择单个文件,如需支持文件多选,请在标签中添加multiple属性,即:
复制代码 代码如下:<input type="file" ng2FileSelect [uploader]="uploader" (change)="selectedFileOnChanged($event)" multiple />
6、拖拽上传文件
支持多文件拖拽上传
复制代码 代码如下:<div class="beforeDrop" ng2FileDrop [ngClass]="{dropping: isDropZoneOver}" (fileOver)="fileOverBase($event)" (onFileDrop)="fileDropOver($event)" [uploader]="uploader"><div>
在对应的 .ts文件中定义拖拽函数
fileOverBase(event) { // 拖拽状态改变的回调函数 } fileDropOver(event) { // 文件拖拽完成的回调函数 }
7、文件上传
FileUploader有个数组类型的属性queue,里面是所有拖拽的和选择的文件,只要操作这个属性便可以进行文件上传。
uploadFileHandel() { this.uploader.queue[0].onSuccess = function (response, status, headers) { // 上传文件成功 if (status == 200) { // 上传文件后获取服务器返回的数据 let tempRes = JSON.parse(response); }else { // 上传文件后获取服务器返回的数据错误 } }; this.uploader.queue[0].upload(); // 开始上传 }
详细介绍FileUpload
**初始化配置表**
参数名 参数类型 是否是可选值 参数说明 allowedMimeType Array<string> 可选值 allowedFileType Array<string> 可选值 允许上传的文件类型 autoUpload boolean 可选值 是否自动上传 isHTML5 boolean 可选值 是否是HTML5 filters Array 可选值 headers Array<Headers> 可选值 上传文件的请求头参数 method string 可选值 上传文件的方式 authToken string 可选值 auth验证的token maxFileSize number 可选值 最大可上传文件的大小 queueLimit number 可选值 removeAfterUpload boolean 可选值 是否在上传完成后从队列中移除 url string 可选值 上传地址 disableMultipart boolean 可选值 itemAlias string 可选值 文件标记/别名 authTokenHeader string 可选值 auth验证token的请求头
参考网站: https://valor-software.com/ng2-file-upload/
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
更新日志
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]