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 相关文章推荐
jquery 简单图片导航插件jquery.imgNav.js
Mar 17 Javascript
JavaScript通过RegExp实现客户端验证处理程序
May 07 Javascript
兼容主流浏览器的jQuery+CSS 实现遮罩层的简单代码
Oct 14 Javascript
浅谈Unicode与JavaScript的发展史
Jan 19 Javascript
iScroll.js 使用方法参考
May 16 Javascript
深入剖析JavaScript面向对象编程
Jul 12 Javascript
浅析Javascript的自动分号插入(ASI)机制
Sep 29 Javascript
Javascript自定义事件详解
Jan 13 Javascript
利用Js+Css实现折纸动态导航效果实例源码
Jan 25 Javascript
重新理解JavaScript的六种继承方式
Mar 24 Javascript
js实现图片上传到服务器和回显
Jan 19 Javascript
Vue自定义render统一项目组弹框功能
Jun 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
PHP调用三种数据库的方法(2)
2006/10/09 PHP
又一个php 分页类实现代码
2009/12/03 PHP
php.ini修改php上传文件大小限制的方法详解
2013/06/17 PHP
关于PHP堆栈与列队的学习
2013/06/21 PHP
利用phpexcel把excel导入数据库和数据库导出excel实现
2014/01/09 PHP
PHP中使用hidef扩展代替define提高性能
2015/04/09 PHP
基于swoole实现多人聊天室
2018/06/14 PHP
js 禁用浏览器的后退功能的简单方法
2008/12/10 Javascript
ASP.NET中使用后端代码注册脚本 生成JQUERY-EASYUI的界面错位的解决方法
2010/06/12 Javascript
JavaScript 32位整型无符号操作示例
2013/12/08 Javascript
使用iframe window的scroll方法控制iframe页面滚动
2014/03/05 Javascript
JS实现静止元素自动移动示例
2014/04/14 Javascript
javascript的事件触发器介绍的实现
2014/06/05 Javascript
使用jQuery实现验证上传图片的格式与大小
2014/12/03 Javascript
js实现鼠标滑过文字链接色彩变化的效果
2015/05/06 Javascript
Bootstrap 最常用的JS插件系列总结(图片轮播、标签切换等)
2016/07/14 Javascript
JavaScript中数组Array方法详解
2017/02/27 Javascript
JavaScript中三个等号和两个等号你了解多少
2017/07/04 Javascript
vue router自动判断左右翻页转场动画效果
2017/10/10 Javascript
详解Vue 多级组件透传新方法provide/inject
2018/05/09 Javascript
JS计算斐波拉切代码实例
2019/09/12 Javascript
[35:55]完美世界DOTA2联赛PWL S3 Rebirth vs CPG 第一场 12.11
2020/12/13 DOTA
Python 面向对象 成员的访问约束
2008/12/23 Python
Python时间的精准正则匹配方法分析
2017/08/17 Python
python装饰器简介---这一篇也许就够了(推荐)
2019/04/01 Python
python爬虫学习笔记之pyquery模块基本用法详解
2020/04/09 Python
Python selenium爬取微信公众号文章代码详解
2020/08/12 Python
如何在scrapy中捕获并处理各种异常
2020/09/28 Python
葡萄牙鞋子品牌:Fair
2016/12/10 全球购物
中软Java笔试题
2012/11/11 面试题
物流专业大学应届生求职信
2013/11/03 职场文书
端午节活动策划方案
2014/03/09 职场文书
葛优非诚勿扰搞笑征婚台词
2014/03/17 职场文书
中共广东省委常委会党的群众路线教育实践活动整改方案
2014/09/23 职场文书
大学生自我评价范文
2015/03/03 职场文书
javascript canvas实现雨滴效果
2021/06/09 Javascript