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 相关文章推荐
javascript EXCEL 操作类代码
Jul 30 Javascript
JavaScript 异步调用框架 (Part 4 - 链式调用)
Aug 04 Javascript
浅谈Javascript事件处理程序的几种方式
Jun 27 Javascript
jQuery链式操作如何实现以及为什么要用链式操作
Jan 17 Javascript
实测jquery data()如何存值
Aug 18 Javascript
js分页工具实例
Jan 28 Javascript
js文本框走动跑马灯效果代码分享
Aug 25 Javascript
javascript中checkbox使用方法简单实例演示
Nov 17 Javascript
JavaScript函数节流概念与用法实例详解
Jun 20 Javascript
深入理解AngularJs-scope的脏检查(一)
Jun 19 Javascript
jQuery Collapse1.1.0折叠插件简单使用
Aug 28 jQuery
详解vue中this.$emit()的返回值是什么
Apr 07 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
摩卡咖啡
2021/03/03 咖啡文化
php检测用户是否用手机(Mobile)访问网站的类
2014/01/09 PHP
Yii实现Command任务处理的方法详解
2016/07/14 PHP
js 小贴士一星期合集
2010/04/07 Javascript
JavaScript随机排序(随即出牌)
2010/09/17 Javascript
使用jquery插件实现图片延迟加载技术详细说明
2011/03/12 Javascript
jQuery添加/改变/移除CSS类及判断是否已经存在CSS
2014/08/20 Javascript
js实现鼠标触发图片抖动效果的方法
2015/02/27 Javascript
JavaScript实现添加、查找、删除元素
2015/07/02 Javascript
jQuery实现仿腾讯迷你首页选项卡效果代码
2015/09/17 Javascript
详解AngularJS中module模块的导入导出
2015/12/10 Javascript
最原始的jQuery注册验证方式
2016/10/11 Javascript
Bootstrap table右键功能实现方法
2017/02/20 Javascript
JS 中document.write()的用法和清空的原因浅析
2017/12/04 Javascript
Webpack devServer中的 proxy 实现跨域的解决
2018/06/15 Javascript
小程序视频列表中视频的播放与停止的示例代码
2018/07/20 Javascript
Vue的data、computed、watch源码浅谈
2020/04/04 Javascript
JavaScript获取时区实现过程解析
2020/09/24 Javascript
vue 实现click同时传入事件对象和自定义参数
2021/01/29 Vue.js
[02:08]2018年度CS GO枪械皮肤设计大赛优秀作者-完美盛典
2018/12/16 DOTA
python数据结构之二叉树的建立实例
2014/04/29 Python
matplotlib绘制动画代码示例
2018/01/02 Python
Python列表解析配合if else的方法
2018/06/23 Python
Tensorflow加载预训练模型和保存模型的实例
2018/07/27 Python
使用Python做定时任务及时了解互联网动态
2019/05/15 Python
python pytest进阶之fixture详解
2019/06/27 Python
Python使用Chrome插件实现爬虫过程图解
2020/06/09 Python
菲律宾最大的网上花店和礼品店:PhilFlower.com
2018/02/09 全球购物
世界上最具创新性的增强型知名运动品牌:Proviz
2018/04/03 全球购物
初中生三年学习生活的自我评价
2013/11/03 职场文书
教育专业自荐书范文
2013/12/17 职场文书
法制报告会主持词
2014/04/02 职场文书
应届毕业生自荐书
2014/06/18 职场文书
初三英语教学计划
2015/01/23 职场文书
户外亲子活动总结
2015/05/08 职场文书
Redis性能监控的实现
2021/07/09 Redis