angular2 文件上传
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(); // 开始上传
}
5、 详细介绍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的请求头
参考网站: http://valor-software.com/ng2...
http://www.jianshu.com/p/0741186f60ab
angular2 文件上传的更多相关文章
- Angular14 利用Angular2实现文件上传的前端、利用springBoot实现文件上传的后台、跨域问题
一.angular2实现文件上传前端 Angular2使用ng2-file-upload上传文件,Angular2中有两个比较好用的上传文件的第三方库,一个是ng2-file-upload,一个是ng ...
- jquery.uploadify文件上传组件
1.jquery.uploadify简介 在ASP.NET中上传的控件有很多,比如.NET自带的FileUpload,以及SWFUpload,Uploadify等等,尤其后面两个控件的用户体验比较好, ...
- 11、Struts2 的文件上传和下载
文件上传 表单准备 要想使用 HTML 表单上传一个或多个文件 须把 HTML 表单的 enctype 属性设置为 multipart/form-data 须把 HTML 表单的method 属性设置 ...
- Java FtpClient 实现文件上传服务
一.Ubuntu 安装 Vsftpd 服务 1.安装 sudo apt-get install vsftpd 2.添加用户(uftp) sudo useradd -d /home/uftp -s /b ...
- 小兔Java教程 - 三分钟学会Java文件上传
今天群里正好有人问起了Java文件上传的事情,本来这是Java里面的知识点,而我目前最主要的精力还是放在了JS的部分.不过反正也不麻烦,我就专门开一贴来聊聊Java文件上传的基本实现方法吧. 话不多说 ...
- ,net core mvc 文件上传
工作用到文件上传的功能,在这个分享下 ~~ Controller: public class PictureController : Controller { private IHostingEnvi ...
- Web开发安全之文件上传安全
很长一段时间像我这种菜鸡搞一个网站第一时间反应就是找上传,找上传.借此机会把文件上传的安全问题总结一下. 首先看一下DVWA给出的Impossible级别的完整代码: <?php if( iss ...
- AutoIt实现Webdriver自动化测试文件上传
在运用WebDriver进行自动化测试时,由于WebDriver自身的限制,对于上传文件时Windows弹出的文件选择窗口无法控制,通过在网上查找资料锁定使用AutoIt来控制文件上传窗口. Auto ...
- Struts的文件上传下载
Struts的文件上传下载 1.文件上传 Struts2的文件上传也是使用fileUpload的组件,这个组默认是集合在框架里面的.且是使用拦截器:<interceptor name=" ...
随机推荐
- oracle系统包——dbms_alert用法
oracle内部提供的在数据库内部和应用程序间通信的方式有以下几种:1.警报,就是DBMS_ALERT包提供的功能:2.管道,由DBMS_PIPE提供:3.高级队列,这个就很复杂,当然提供的功能也是很 ...
- 在ubuntu10.10下安装Google谷歌拼音输入法
安装步骤如下:1.下载文件:sudo wget http://malu.googlecode.com/files/scim-googlepinyin.tar.gz(经测试,这个链接已经失效了,幸好有前 ...
- Mybatis-动态SQL语句
有些时候,sql语句where条件中,需要一些安全判断,例如按某一条件查询时如果传入的参数是空,此时查询出的结果很可能是空的,也许我们需要参数为空时,是查出全部的信息.使用Oracle的序列.mysq ...
- bzoj 5315: [Jsoi2018]防御网络
Description Solution 考虑每一条边的贡献 对于树边,如果两边各存在一个点,那么有贡献,总贡献就是 \((2^{size}-1)*(2^{n-size}-1)\) 分别对应两边的 \ ...
- svn update 报错,必须先cleanup,然后cleanup失败解决方法
一 问题描述: 1.svn update失败,提示已被locked,请执行cleanup 2.执行svn cleanup,提示cleanup failed to process the followi ...
- C# dynamic json
对应普通对象,写个扩展方法,ToJson蛮方便. 但是 dynamic 类型就不行了,因为是运行时解析,只能转换为强类型 IDictionary<string, object> 才可以. ...
- UML关系
UML关系详解 1.关联关系(association) 连接模型元素及链接实例,用一条实线来表示 2.依赖关系(dependency) 表示一个元素以某种方式依赖于另一个元素,用一条虚线加箭头来表示 ...
- (C++学习)关于CString的一些疑问
#include <iostream> #include <string> #include <afx.h> #include <vector> usi ...
- C# xml操作word-->word转2003xml
1.第一步,准备word模版
- .netcore2.0 发布CentOS7
1.一般在windows pc上使用vscode 开发好.netcore 程序如果需要发布到其他平台需要注意一些事情 首先需要明白2个概念:FDD(Framework-dependent deploy ...