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 相关文章推荐
js点击更换背景颜色或图片的实例代码
Jun 25 Javascript
JS如何将UTC格式时间转本地格式
Sep 04 Javascript
jquery 倒计时效果实现秒杀思路
Sep 11 Javascript
JavaScript获取网页表单action属性的方法
Apr 02 Javascript
使用jquery提交form表单并自定义action的方法
May 25 Javascript
jQuery设置单选按钮radio选中/不可用的实例代码
Jun 24 Javascript
浅谈对Angular中的生命周期钩子的理解
Jul 31 Javascript
vue 页面加载进度条组件实例
Feb 05 Javascript
IntelliJ IDEA编辑器配置vue高亮显示
Sep 26 Javascript
JavaScript实现图片轮播特效
Oct 23 Javascript
ES2020系列之空值合并运算符 '??'
Jul 22 Javascript
jQuery+ajax实现文件上传功能
Dec 22 jQuery
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/04 冲泡冲煮
php仿discuz分页效果代码
2008/10/02 PHP
sourcesafe管理phpproj文件的补充说明(downmoon)
2009/04/11 PHP
PHP 类型转换函数intval
2009/06/20 PHP
PHP 创建标签云函数代码
2010/05/26 PHP
PHP完全二叉树定义与实现方法示例
2017/10/09 PHP
防止xss和sql注入:JS特殊字符过滤正则
2013/04/18 Javascript
删除javascript所创建子节点的方法
2015/05/21 Javascript
JQuery分屏指示器图片轮换效果实例
2015/05/21 Javascript
JavaScript 不支持 indexof 该如何解决
2016/03/30 Javascript
javascript对象的相关操作小结
2016/05/16 Javascript
使用Vue-cli 3.0搭建Vue项目的方法
2018/06/07 Javascript
纯javascript实现选择框的全选与反选功能
2019/04/08 Javascript
vue动态注册组件实例代码详解
2019/05/30 Javascript
element-ui 本地化使用教程详解
2019/10/28 Javascript
Python函数参数类型*、**的区别
2015/04/11 Python
浅谈Python实现Apriori算法介绍
2017/12/20 Python
pandas.dataframe按行索引表达式选取方法
2018/10/30 Python
Python设计模式之装饰模式实例详解
2019/01/21 Python
python实现AES加密和解密
2019/03/27 Python
详解Python 定时框架 Apscheduler原理及安装过程
2019/06/14 Python
opencv3/python 鼠标响应操作详解
2019/12/11 Python
python装饰器实现对异常代码出现进行自动监控的实现方法
2020/09/15 Python
Python爬虫实现selenium处理iframe作用域问题
2021/01/27 Python
计算机毕业大学生推荐信
2013/12/01 职场文书
旅游管理专业生自荐信范文
2014/01/02 职场文书
党员服务承诺书
2014/05/28 职场文书
2014教师党员自我评议(5篇)
2014/09/20 职场文书
绿色校园广播稿
2014/10/13 职场文书
2014年幼儿园保育工作总结
2014/12/02 职场文书
财务部岗位职责
2015/02/03 职场文书
2015年社区民政工作总结
2015/04/21 职场文书
学生安全责任协议书
2016/03/22 职场文书
JavaGUI模仿QQ聊天功能完整版
2021/07/04 Java/Android
K8s部署发布Golang应用程序的实现方法
2021/07/16 Golang
HTML基础详解(下)
2021/10/16 HTML / CSS