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 相关文章推荐
关于hashchangebroker和statehashable的补充文档
Aug 08 Javascript
IE与Firefox在JavaScript上的7个不同句法分享
Oct 30 Javascript
JS实现网页背景颜色与select框中颜色同时变化的方法
Feb 27 Javascript
jquery实现点击展开列表同时隐藏其他列表
Aug 10 Javascript
js实现类似MSN提示的页面效果代码分享
Aug 24 Javascript
window.location.hash知识汇总
Nov 09 Javascript
文件上传插件SWFUpload的使用指南
Nov 29 Javascript
js自定义QQ菜单效果
Jan 10 Javascript
easyui 中的datagrid跨页勾选问题的实现方法
Jan 18 Javascript
微信小程序封装http访问网络库实例代码
May 24 Javascript
JQuery animate动画应用示例
May 14 jQuery
mapboxgl实现带箭头轨迹线的代码
Jan 04 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
第六节 访问属性和方法 [6]
2006/10/09 PHP
在PHP中使用与Perl兼容的正则表达式
2006/11/26 PHP
用mysql内存表来代替php session的类
2009/02/01 PHP
ThinkPHP与PHPExcel冲突解决方法
2011/08/08 PHP
php foreach正序倒序输出示例代码
2014/07/01 PHP
php的api数据接口书写实例(推荐)
2016/09/22 PHP
thinkphp5 migrate数据库迁移工具
2018/02/20 PHP
Laravel 6 将新增为指定队列任务设置中间件的功能
2019/08/06 PHP
JavaScript 输入框内容格式验证代码
2010/02/11 Javascript
jquery使用$(element).is()来判断获取的tagName
2014/08/24 Javascript
PHP+jQuery+Ajax+Mysql如何实现发表心情功能
2015/08/06 Javascript
JavaScript判断FileUpload控件上传文件类型
2015/09/28 Javascript
使用three.js 画渐变的直线
2016/06/05 Javascript
漫谈JS引擎的运行机制 你应该知道什么
2016/06/15 Javascript
Webpack实战加载SVG的方法
2017/12/26 Javascript
vue.js 实现输入框动态添加功能
2018/06/25 Javascript
原生js检测页面加载完毕的实例
2018/09/11 Javascript
轻松学习JavaScript函数中的 Rest 参数
2019/05/30 Javascript
vue下canvas裁剪图片实例讲解
2020/04/16 Javascript
Python logging模块学习笔记
2014/05/24 Python
python黑魔法之参数传递
2016/02/12 Python
Win10用vscode打开anaconda环境中的python出错问题的解决
2020/05/25 Python
使用python-cv2实现视频的分解与合成的示例代码
2020/10/26 Python
详解HTML5中CSS外观属性
2020/09/10 HTML / CSS
全球性的在线购物网站:Zapals
2017/03/22 全球购物
怎样比较两个类型为String的字符串
2016/08/17 面试题
史上最全面的Java面试题汇总!
2015/02/03 面试题
汽车技术服务英文求职信范文
2014/01/02 职场文书
法制宣传日活动总结
2014/04/29 职场文书
教师节倡议书
2014/08/30 职场文书
统计学教授推荐信
2014/09/18 职场文书
学校施工安全责任书
2015/01/29 职场文书
企业财务经理岗位职责
2015/04/08 职场文书
单独二胎证明
2015/06/24 职场文书
3招让你摆脱即兴讲话冷场尴尬
2019/08/08 职场文书
Springboot-cli 开发脚手架,权限认证,附demo演示
2022/04/28 Java/Android