Angular2-primeNG文件上传模块FileUpload使用详解


Posted in Javascript onJanuary 14, 2017

近期在学习使用Angular2做小项目,期间用到很多primeNG的模块。
本系列将结合实战总结angular2-primeNG各个模块的使用经验。

文件上传模块FileUploadModule

首先要在使用该组件的模块内导入文件上传模块

本例中为:

admin.module.ts

import {FileUploadModule} from 'primeng/primeng';
@NgModule({
  imports: [FileUploadModule]
})

在需要使用上传功能的组件的HTML页里添加:

demo-add.component.html:

<label>照片:</label>
<div>
  <!--上传组件 -->
   <p-fileUpload 
     name="uploadPhoto[]" 
     url="http://localhost:3333/api/upload"
     (onUpload)="onPhotoUpload($event)" accept="image/*" maxFileSize="1000000">
     <template pTemplate type="content">
       <ul *ngIf="photoFiles.length">
         <li *ngFor="let file of photoFiles">
           {{file.name}} - {{file.size}} bytes
         </li>
       </ul>
     </template>
   </p-fileUpload>
</div>
<!--如果图片上传成功,显示图片 -->
<div *ngIf="demo.photo">
  <img src="{{photoUrl}}">
</div>

在组件里写入事件处理及定义变量:

demo-add.component.ts:

class Demo{
  photo:String;
}
demo = new Demo();
photoFiles: any[] = [];
photoUrl:string;
onPhotoUpload(event) {
  this.demo.photo = JSON.parse(event.xhr.response).data.name;
  this.photoUrl ="upload/demo/"+this.demo.photo;
    for(let file of event.files) {
      this.photoFiles.push(file);
    }
  }

onPhotoUpload函数为onUpload(上传)异步事件触发的回调函数,接收一个$event参数,这里我们用到的是event.xhr,这是一个XMLHTTPREQUEST对象。我们用JSON.parse去解析,后台NODEJS代码:

router.post('/upload', function (req, res) {
  //文件
  const photoData = req.files.uploadPhoto[0];
  //文件路径
  const filePath = photoData.path;
  //读取文件
  fs.readFile(filePath, function (err, data) {
    //取时间戳用来命名
    const timestamp = Date.now();
    //取文件类型用来命名
    const type = photoData.type.split('/')[1];
    //命名文件
    const photo = timestamp + '.' + type;
    //存储路径
    const newPath = path.join(__dirname, '../', 'upload/demo/' + photo);
    //写入文件
    fs.writeFile(newPath, data, function (err) {
      //返回状态1表示成功,返回的数据是存储后的文件名
      const reply = {
        status: 1,
        data: {
          name: photo
        }
      };
      res.end(JSON.stringify(reply));
    })
  });
});

至此FileUpload异步上传文件,成功后显示文件的功能就实现了。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript 火狐(firefox)不显示本地图片问题解决
Jul 05 Javascript
JavaScript delete操作符应用实例
Jan 13 Javascript
jQuery获取css z-index在各种浏览器中的返回值
Sep 15 Javascript
JS去除右边逗号的简单方法
Jul 03 Javascript
利用js制作html table分页示例(js实现分页)
Apr 25 Javascript
jQuery实现带有洗牌效果的动画分页实例
Aug 31 Javascript
JavaScript解八皇后问题的方法总结
Jun 12 Javascript
webpack手动配置React开发环境的步骤
Jul 02 Javascript
微信小程序实现的3d轮播图效果示例【基于swiper组件】
Dec 11 Javascript
Vue 解决多级动态面包屑导航的问题
Nov 04 Javascript
js实现动态时钟
Mar 12 Javascript
JavaScript设计模式之原型模式详情
Jun 21 Javascript
Angular2 PrimeNG分页模块学习
Jan 14 #Javascript
bootstrap datetimepicker日期插件使用方法
Jan 13 #Javascript
详解jQuery事件
Jan 13 #Javascript
js实现固定宽高滑动轮播图效果
Jan 13 #Javascript
JavaScript利用闭包实现模块化
Jan 13 #Javascript
Vue.js基础知识小结
Jan 13 #Javascript
canvas实现流星雨的背景效果
Jan 13 #Javascript
You might like
yii框架配置默认controller和action示例
2014/04/30 PHP
php模拟用户自动在qq空间发表文章的方法
2015/01/07 PHP
再Docker中架设完整的WordPress站点全攻略
2015/07/29 PHP
php常用的工具开发整理
2019/09/26 PHP
JS计算网页停留时间代码
2014/04/28 Javascript
javascript数组随机排序实例分析
2015/07/22 Javascript
js获取iframe中的window对象的实现方法
2016/05/20 Javascript
javascript作用域链与执行环境详解
2017/03/25 Javascript
JS倒计时实例_天时分秒
2017/08/22 Javascript
在 Vue 项目中引入 tinymce 富文本编辑器的完整代码
2018/05/04 Javascript
vue组件name的作用小结
2018/05/23 Javascript
JavaScript模板引擎原理与用法详解
2018/12/24 Javascript
[50:59]2018DOTA2亚洲邀请赛 4.7 总决赛 LGD vs Mineski第四场
2018/04/10 DOTA
给Python IDLE加上自动补全和历史功能
2014/11/30 Python
Python基于递归算法实现的走迷宫问题
2017/08/04 Python
详解Python 序列化Serialize 和 反序列化Deserialize
2017/08/20 Python
Python探索之实现一个简单的HTTP服务器
2017/10/28 Python
python获取Pandas列名的几种方法
2019/08/07 Python
python实现录屏功能(亲测好用)
2020/03/02 Python
Django+Django-Celery+Celery的整合实战
2021/01/20 Python
CSS3伪类选择器:nth-child()
2009/04/02 HTML / CSS
用CSS禁用输入法(CSS3 UI规范)实例解析
2012/12/04 HTML / CSS
美国在线轮胎零售商:SimpleTire
2019/04/08 全球购物
《蒙娜丽莎之约》教学反思
2014/02/27 职场文书
市级文明单位申报材料
2014/05/07 职场文书
公司委托书怎么写
2014/08/02 职场文书
2014年教师节国旗下讲话稿
2014/09/10 职场文书
秋季运动会广播稿(30篇)
2014/09/13 职场文书
党员四风问题对照检查材料思想汇报
2014/09/16 职场文书
学生喝酒检讨书500字
2014/11/02 职场文书
2014年设计师工作总结
2014/11/25 职场文书
幼儿园综治宣传月活动总结
2015/05/07 职场文书
奖学金主要事迹范文
2015/11/04 职场文书
党风廉政建设心得体会(2016最新版)
2016/01/22 职场文书
八年级作文之感悟亲情
2019/11/20 职场文书
详解Redis复制原理
2021/06/04 Redis