angular2 ng2-file-upload上传示例代码


Posted in Javascript onAugust 23, 2018

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/

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
学习ExtJS fit布局使用说明
Oct 08 Javascript
关于图片按比例自适应缩放的js代码
Oct 30 Javascript
jquery 表格的增行删行实现思路
Mar 21 Javascript
节点的插入之append()和appendTo()的用法介绍
Jan 13 Javascript
JavaScript中操作字符串小结
May 04 Javascript
深入解析JavaScript编程中的this关键字使用
Nov 09 Javascript
实例解析angularjs的filter过滤器
Dec 14 Javascript
2种简单的js倒计时方式
Oct 20 Javascript
基于jQuery实现定位导航位置效果
Nov 15 jQuery
JS实现520 表白简单代码
May 21 Javascript
JavaScript实现移动端弹窗后禁止滚动
May 25 Javascript
使用Vant完成通知栏Notify的提示操作
Nov 11 Javascript
Angular angular-file-upload文件上传的示例代码
Aug 23 #Javascript
JS实现的简单分页功能示例
Aug 23 #Javascript
JavaScript实用代码小技巧
Aug 23 #Javascript
jQuery实现鼠标移到某个对象时弹出显示层功能
Aug 23 #jQuery
使用JS实现导航切换时高亮显示的示例讲解
Aug 22 #Javascript
Vue 菜单栏点击切换单个class(高亮)的方法
Aug 22 #Javascript
Vue.js点击切换按钮改变内容的实例讲解
Aug 22 #Javascript
You might like
坏狼的PHP学习教程之第2天
2008/06/15 PHP
在PHP上显示JFreechart画的统计图方法
2013/11/03 PHP
PHP使用正则表达式获取微博中的话题和对象名
2015/07/18 PHP
PHP的文件操作与算法实现的面试题示例
2015/08/10 PHP
Redis构建分布式锁
2017/03/28 PHP
php头像上传预览实例代码
2017/05/02 PHP
PHP实现下载远程图片保存到本地的方法
2017/06/19 PHP
PHPStorm2020.1永久激活及下载更新至2020(推荐)
2020/09/25 PHP
JavaScript中实现sprintf、printf函数
2015/01/27 Javascript
jquery实现图片左右切换的方法
2015/05/07 Javascript
在jQuery中处理XML数据的大致方法
2015/08/14 Javascript
js操作数据库实现注册和登陆的简单实例
2016/05/26 Javascript
jQuery实现智能判断固定导航条或侧边栏的方法
2016/09/04 Javascript
bootstrap模态框嵌套、tabindex属性、去除阴影的示例代码
2017/10/17 Javascript
利用Javascript实现一套自定义事件机制
2017/12/14 Javascript
vue组件中的数据传递方法
2018/05/14 Javascript
JavaScript数据结构之栈实例用法
2019/01/18 Javascript
如何提升vue.js中大型数据的性能
2019/06/21 Javascript
vue之a-table中实现清空选中的数据
2019/11/07 Javascript
[56:41]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 Newbee vs OG
2018/04/01 DOTA
[41:52]DOTA2-DPC中国联赛 正赛 CDEC vs Dynasty BO3 第二场 2月22日
2021/03/11 DOTA
python密码错误三次锁定(实例讲解)
2017/11/14 Python
python中abs&amp;map&amp;reduce简介
2018/02/20 Python
Python中XlsxWriter模块简介与用法分析
2018/04/24 Python
对Python中一维向量和一维向量转置相乘的方法详解
2019/08/26 Python
意大利网上购书网站:Libraccio.it
2021/02/03 全球购物
桥梁与隧道工程专业本科生求职信
2013/10/08 职场文书
电大自我鉴定
2013/10/27 职场文书
日语专业个人求职信范文
2014/02/02 职场文书
安全检查管理制度
2014/02/02 职场文书
产品销售计划书
2014/05/04 职场文书
学雷锋广播稿大全
2015/08/19 职场文书
2016年“12.3”国际残疾人日活动总结
2016/04/01 职场文书
浅谈JS和Nodejs中的事件驱动
2021/05/05 NodeJs
提取视频中的音频 Python只需要三行代码!
2021/05/10 Python
JavaScript offset实现鼠标坐标获取和窗口内模块拖动
2021/05/30 Javascript