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 下拉框联动实现代码
Apr 09 Javascript
Extjs中ComboBoxTree实现的下拉框树效果(自写)
May 28 Javascript
js判断鼠标左、中、右键哪个被点击的方法
Jan 27 Javascript
js实现浏览器窗口大小被改变时触发事件的方法
Feb 02 Javascript
Js 获取、判断浏览器版本信息的简单方法
Aug 08 Javascript
AngularJS表达式讲解及示例代码
Aug 16 Javascript
BootStrap select2 动态改变值的方法
Feb 10 Javascript
jQuery常用选择器详解
Jul 17 jQuery
angular中ui calendar的一些使用心得(推荐)
Nov 03 Javascript
微信小程序使用map组件实现检索(定位位置)周边的POI功能示例
Jan 23 Javascript
layer.prompt输入层的例子
Sep 24 Javascript
JavaScript图像放大镜效果实现方法详解
Jun 28 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操作符与控制结构代码
2011/12/30 PHP
几种有用的变型 PHP中循环语句的用法介绍
2012/01/30 PHP
解析php中用PHPMailer来发送邮件的示例(126.com的例子)
2013/06/24 PHP
yii2实现分页,带搜索的分页功能示例
2017/01/07 PHP
在一个form用一个SUBMIT(或button)分别提交到两个处理表单页面的代码
2007/02/15 Javascript
javascript 异步页面查询实现代码(asp.net)
2010/05/26 Javascript
jquery实现输入框动态增减的实例代码
2013/07/14 Javascript
提升PHP安全:8个必须修改的PHP默认配置
2014/11/17 Javascript
NodeJS制作爬虫全过程
2014/12/22 NodeJs
使用javascript实现判断当前浏览器
2015/04/14 Javascript
jQuery实现图片向左向右切换效果的简单实例
2016/05/18 Javascript
全面了解JavaScirpt 的垃圾(garbage collection)回收机制
2016/07/11 Javascript
原生JS实现幻灯片
2017/02/22 Javascript
一个简易的js图片轮播效果
2017/07/22 Javascript
angularjs 缓存的使用详解
2018/03/19 Javascript
Web安全之XSS攻击与防御小结
2018/12/13 Javascript
详解JavaScript 浮点数运算的精度问题
2019/07/23 Javascript
vue 实现通过vuex 存储值 在不同界面使用
2019/11/11 Javascript
[00:53]TI3正赛第三天 DK怒破A队不败金身 现场国旗飘扬热血激昂
2013/08/10 DOTA
python通过urllib2获取带有中文参数url内容的方法
2015/03/13 Python
Python实现将绝对URL替换成相对URL的方法
2015/06/28 Python
Python使用ntplib库同步校准当地时间的方法
2016/07/02 Python
Python中判断输入是否为数字的实现代码
2018/05/26 Python
python 实现将字典dict、列表list中的中文正常显示方法
2018/07/06 Python
python 如何去除字符串头尾的多余符号
2019/11/19 Python
利用Python脚本批量生成SQL语句
2020/03/04 Python
python 决策树算法的实现
2020/10/09 Python
python用700行代码实现http客户端
2021/01/14 Python
利用Python实现最小二乘法与梯度下降算法
2021/02/21 Python
用CSS3实现Win8风格的方格导航菜单效果
2013/04/10 HTML / CSS
比利时香水网上商店:NOTINO
2018/03/28 全球购物
仓库门卫岗位职责
2013/12/22 职场文书
安全生产演讲稿
2014/05/09 职场文书
介绍信应该怎么开?
2019/04/03 职场文书
学者《孟子》名人名言
2019/08/09 职场文书
sql通过日期判断年龄函数的示例代码
2021/07/16 SQL Server