Angular2里获取(input file)上传文件的内容的方法


Posted in Javascript onSeptember 05, 2017

最近在用Angular2,需要有一个上传文件的功能,但是又不想用库,所以直接用原生的input file 标签。

<input type="file" id="newUpload" >

然后想获取上传的内容,于是先想了个愚蠢的方法,先通过id获取到这个input标签,然后再获取其中上传的内容

const uploadsFile = document.getElementById(name).files[0];

结果就报错了。然后看提示说HTMLElement没有files方法。于是在es6里找了下有files属性的类型,是HTMLInputElement类型。于是就强制它转换成这个类型。

const uploadsFile=<HTMLInputElement>document.getElementById(name).files[0];

结果还是不行,最后改成了先转换类型再调用属性就可以了。

const uploadsFile = <HTMLInputElement>document.getElementById(name);
  const file = uploadsFile.files[0];

后面发现这种方式好像有点愚蠢,于是换了一个方法,用angular2里的$event来获取输入内容,里面也包括选择上传的文件。

<input type="file" id="newUpload" (change)="getUpload(newUpload, $event)" >

选择的文件在event.target.files里

private getUpload(obj, e) {
  if (e.target.files[0]) {
   const file = e.target.files[0];
   obj.file = file;
  }
 }

接着就可以把它放到formdata里了

const formData = new FormData();
  formData.append('file', this.upload.file);

最后清空选择上传的内容可以用

let upload = <HTMLInputElement>document.querySelector(selectorName);
  upload.value = null;

不知道有没有更好的方法,欢迎讨论和指正。

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

Javascript 相关文章推荐
JavaScript中各种编码解码函数的区别和注意事项
Aug 19 Javascript
Js从头学起(基本数据类型和引用类型的参数传递详细分析)
Feb 16 Javascript
JavaScript给按钮绑定点击事件(onclick)的方法
Apr 07 Javascript
jquery实现通用的内容渐显Tab选项卡效果
Sep 07 Javascript
javascript实现别踩白块儿小游戏程序
Nov 22 Javascript
整理Javascript函数学习笔记
Dec 01 Javascript
jqgrid实现简单的单行编辑功能
Sep 30 Javascript
如何将HTML字符转换为DOM节点并动态添加到文档中详解
Aug 19 Javascript
JS Array.from()将伪数组转换成数组的方法示例
Mar 23 Javascript
js实现mp3录音通过websocket实时传送+简易波形图效果
Jun 12 Javascript
vue使用echarts画组织结构图
Feb 06 Vue.js
详细介绍Next.js脚手架完整搭建封装
Apr 26 Javascript
浅谈angular4生命周期钩子
Sep 05 #Javascript
webpack踩坑之路图片的路径与打包
Sep 05 #Javascript
js实现鼠标跟随运动效果
Aug 02 #Javascript
Node.js如何使用Diffie-Hellman密钥交换算法详解
Sep 05 #Javascript
javascript观察者模式实现自动刷新效果
Sep 05 #Javascript
js使用generator函数同步执行ajax任务
Sep 05 #Javascript
vue如何使用 Slot 分发内容实例详解
Sep 05 #Javascript
You might like
解决PHP在DOS命令行下却无法链接MySQL的技术笔记
2010/12/29 PHP
PHP+Mysql+jQuery实现发布微博程序 php篇
2015/10/15 PHP
老生常谈PHP面向对象之标识映射
2017/06/21 PHP
javascript开发技术大全-第1章javascript概述
2011/07/03 Javascript
js二级地域选择的实现方法
2013/06/17 Javascript
js 验证身份证信息有效性
2014/03/28 Javascript
JavaScript电子时钟倒计时第二款
2016/01/10 Javascript
一步步教大家编写酷炫的导航栏js+css实现
2016/03/14 Javascript
JavaScript笔记之数据属性和存储器属性
2016/03/31 Javascript
基于JavaScript实现 网页切出 网站title变化代码
2016/04/03 Javascript
实例讲解Jquery中隐藏hide、显示show、切换toggle的用法
2016/05/13 Javascript
Bootstrap菜单按钮及导航实例解析
2016/09/09 Javascript
Jquery通过ajax请求NodeJS返回json数据实例
2016/11/08 NodeJs
从零开始做一个pagination分页组件
2017/03/15 Javascript
推荐三款日期选择插件(My97DatePicker、jquery.datepicker、Mobiscroll)
2017/04/21 jQuery
nodeJS实现路由功能实例代码
2017/06/08 NodeJs
Vue2 SSR渲染根据不同页面修改 meta
2017/11/20 Javascript
vue用Object.defineProperty手写一个简单的双向绑定的示例
2018/07/09 Javascript
vue 插件的方法代码详解
2019/06/06 Javascript
javascript设计模式 ? 工厂模式原理与应用实例分析
2020/04/09 Javascript
Python中函数eval和ast.literal_eval的区别详解
2017/08/10 Python
Pycharm 创建 Django admin 用户名和密码的实例
2018/05/30 Python
使用python制作一个为hex文件增加版本号的脚本实例
2019/06/12 Python
python sklearn常用分类算法模型的调用
2019/10/16 Python
Python函数生成器原理及使用详解
2020/03/12 Python
详解python datetime模块
2020/08/17 Python
Python爬虫+Tkinter制作一个翻译软件的示例
2021/02/20 Python
英国索普公园票务和酒店套餐:Thorpe Breaks
2019/09/14 全球购物
信息部岗位职责
2013/11/12 职场文书
学校运动会霸气口号
2014/06/07 职场文书
2015新生加入学生会自荐书
2015/03/24 职场文书
如何在pycharm中快捷安装pip命令(如pygame)
2021/05/31 Python
php修改word的实例方法
2021/11/17 PHP
tomcat正常启动但网页却无法访问的几种解决方法
2022/05/06 Servers
html网页引入svg图片的4种方式
2022/08/05 HTML / CSS
windows server2012 R2下安装PaddleOCR服务的的详细步骤
2022/09/23 Servers