另参考 http://www.jianshu.com/p/46e6e03a0d53

1 filelist对象与file对象:

<input type="file" id="file" multiple>     //multiple可上传多个文件
<input type="button" onclick="showFileName()" value="文件上传">
<script>
function showFileName(){
var file; //创建file对象
for(var i;i<document.getElementById("file").files.length;i++){
file = document.getElementById('file').files[i]; //.files
console.log(file.name);
}
}
</script>

2 Blob对象:表示原始的二进制数据,file继承自blob。

  • 其属性1:size 表示文件大小
  • 属性2:type 表示文件类型  如image/png
var file;
file = document.getElementById("file").files[0];
file.size; //当前上传文件的大小
file.type;

3 Filereader对象
包含5个对象:

  • readAsBinaryString    将文件数据读取为二进制数据字符串
  • readAsText   将文件数据读取为文本数据
  • readAsDataURL   图像路径
  • readArrayBuffer
  • abort       中断

6个事件:

  • onabord
  • onerror
  • onloadstart
  • onload
  • onloadend
  • onprogress 监听进度
<input type="file" id="file">
<input type='button' value='读取图像‘ onclick='readAsDataURL()'>
<input type='button' value=读取二进制’ onclick=''>
<input type='button value='读取文本文件‘ onclick=''>
<div id='result' name='result>
<script>
var result = document.getElementById('result');
var file = document.getElementById('file'); function readAsDataURL(){
var file = document.getElementById('file').files[0];
var reader = new FileReader(); //创建filereader对象
reader.readAsDataURL(file); //读取图片文件
reader.onload = function(ofile){
var resultimg = document.getElementById('result');
resultimg.innerHTML = '<img src="'+ofile.target.result+'"+alt="">';
}
} function readAsText(){
var file = document.getElementById('file').files[0];
var reader = new FileReader();
reader.readAsText(file); //读取文本内容
reader.onload = function(e){
var resulttxt = document.getElementById('result');
resulttxt.innerHTML = e.target.result;
}
}
</script>

原文链接

HTML5 读取上传文件(转载)的更多相关文章

  1. 实践Html5的上传文件

    技术点: 1.通过input的change事件获取文件信息: onchange = function() { this.files } 这个files属性是htmlInputElement接口的属性, ...

  2. C# 结合html5 批量上传文件和图片预览

    html5 新特性 <input id="imgsf" type="file" name="imgsf" multiple /> ...

  3. php 使用html5 XHR2 上传文件 进度显示

    思路:只要我们知道上传文件的总大小,还有上传过程中上传文件的大小,那么就可以实现进度显示了. 在html5中,XMLHttpRequest对象,传送数据的时候,progress事件用来返回进度信息. ...

  4. jQuery+HTML5实现上传文件预览

    <!DOCTYPE html> <html> <head> <title>HTML5上传图片预览</title> <meta http ...

  5. html5 file 上传文件

    <body> <header> <h2>Pure HTML5 file upload</h2> </header> <div clas ...

  6. 【ASP.NET MVC】HTML5+MVC上传文件显示进度

    head> <title>Index</title> <style type="text/css"> #statusBorder { po ...

  7. HTML5 jQuery+FormData 异步上传文件,带进度条

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <link href ...

  8. Ajax方式上传文件

    用到两个对象 第一个对象:FormData 第二个对象:XMLHttpRequest 目前新版的Firefox 与 Chrome 等支持HTML5的浏览器完美的支持这两个对象,但IE9尚未支持 For ...

  9. HTML5关于上传API的一些使用(上)

    HTML5提供了很多有用的API,其中就包括上传的API,XMLHttpRequest2.0,在HTML5时代之前,需要进行二进制的上传一般都会才用flash的方案,但是当XMLHttpRequest ...

随机推荐

  1. SyntaxError: JSON.parse: bad control character in string literal at line 1 column 16 of the JSON data

    JSON.parse转化Json字符串时出现:SyntaxError: JSON.parse: bad control character in string literal at line 1 co ...

  2. SSM 开发 Tars

    目录结构 tars生成的文件当成 controller 来调用 service ,service 调用 mapper POM 注意如果 mybatis是3.4.1 spring 是4.1.14的话, ...

  3. 去除git版本控制

    命令:find . -name ".git" | xargs rm –Rf linux $ find . -type d -iname '__pycache__' -exec rm ...

  4. Android studio 在一个项目上添加另一个项目,引用其内部参数

    Setting.gradle 里面 添加 include ':app',‘imagePicker’ 其中 imagePicker 为要引入的项目名 build.gradle(Module: app)  ...

  5. (其他)SQL注入(转)

    转自维基百科: SQL注入是一种代码注入技术,用于攻击数据驱动的应用程序,在这种应用程序中,恶意的SQL语句被插入输入字段中执行(例如将数据库内容转储给攻击者).[1] SQL注入必须利用应用程序软件 ...

  6. 常用的docker命令

    在这里记一下,以免以后忘记了. ------------------------------------------------------------------------------------ ...

  7. Exchange ActiveSync iOS and Android User Agent Strings

    Updated: April 2018 iOS devices unfortunately do not register with ActiveSync or other tools with a ...

  8. 非对称加密与GPG/PGP

    最近浏览博客的时候,经常会看到博主展示出自己的公钥,于是对 GPG/PGP 产生兴趣.下面简单记录相关文章的链接,方便以后了解. 简介: 1991年,程序员Phil Zimmermann为了避开政府的 ...

  9. Python实例---模拟微信网页登录(day4)

    第五步: 获取联系人信息---day4代码 settings.py """ Django settings for weixin project. Generated b ...

  10. 【PAT】B1068 万绿丛中一点红(20 分)

    一开始因为看见这题就头疼,可费了点时间. 要考虑所有元素,如果忽略外圈元素,最后一个样例过不去. 而且要求只出现一次的元素, 我没有使用map,因为当时还没学,用map储存元素会节约好多代码 #inc ...