html5文件域的自动获取,HTML5 文件域+FileReader 读取文件(一)

在HTML5以前,HTML的文件上传域的功能具有很大的局限性,这种局限性主要体现在如下两点:

每次只能选择一个文件进行上传

客户端代码只能获取被上传文件的文件路径,无法访问实际的文件内容

一、FileList对象和File对象

HTML5为type='file' 的元素增加了两个属性。

accept:该属性控制允许上传的文件类型。该属性为一个或多个MIME类型字符串。多个MIME类型字符串之间应以都好分割。

multiple:该属性设置是否允许选择多个文件

JavaScript可以通过files属性访问type='file'的元素生成的文件上传域的所有文件,该属性返回一个FileList对象,FileList对象相当于一个数组,开发者可以使用类似于数组的方法来访问该数组内的每个File对象。

File对象是一个JavaScript对象,可以通过该对象获取浏览器的所有文件信息。File对象包含如下属性。

name:返回该File对象对应的文件的文件名, 不包括文件路径部分

type:返回该File对象的文件的MIME类型字符串。

size:返回该File对象的对应的文件的大小,字节单位

实例:

预览图片:

varimgInput=document.getElementById('images');

imgInput.οnchange= function() {//1.获取所有选中文件列表

varfileList=imgInput.files;//2.遍历显示信息

for(vari= 0; i

vardiv=document.createElement('div');

div.innerHTML= "第" +(i+ 1)+ "个文件的文件名:" +file.name+ ",文件类型:" +file.type+ ",文件大小:" +file.size;//添加到 body中

document.body.appendChild(div);

}

}

显示结果:

提示:该文件选择框设置了accept='image/*'只显示图片。

不要靠accept属性来过滤文件类型,因为这只是客户端的文件类型过滤,这种文件类型过滤是很脆弱的,如果开发者需要进行文件上传,则必须在服务器端对文件类型进行过滤。

二、使用FileReader读取文件内容

FileReader同样是一个JavaScript对象,开发者可以通过该对象在客户端读取 文件上传域所选择的文件内容.关于FileReader

实例1:

读取文本文件:
读取为二进制:
读取为DataURL:

//判断浏览器是否支持FileReader对象

varreaderif(FileReader) {

reader= newFileReader();

}else{

alert('您的浏览器不支持FileReader对象');

}//1.读取为文本

varfile1=document.getElementById('file1');

file1.οnchange= function() {varfile=file1.files[0];//判断读取的第一个文件是否是文本文件

if(/text/w+/.test(file.type)) {//以文本的方式读取内容

reader.readAsText(file,'gbk');

reader.οnlοad= function() {

document.getElementById('result').innerHTML=reader.result;

}

}else{

alert('读取的不是文本文件');

}

}//2.读取为二级制

varfile2=document.getElementById('file2');

file2.οnchange= function() {varfile=file2.files[0];//以二进制流的方式读取第一个文件

//reader.readAsArrayBuffer(file); //返回二进制数组

reader.readAsBinaryString(file);//返回二进制字符串

reader.οnlοad= function() {

document.getElementById('result').innerHTML=reader.result;

}

}//3.读取为DataURL

varfile3=document.getElementById('file3');

file3.οnchange= function() {varfile=file3.files[0];

reader.readAsDataURL(file);

reader.οnlοad= function() {

document.getElementById('result').innerHTML=reader.result;

}

}

FileReader在读取文件的过程中可能多次触发onprogress事件,通过该事件绑定监听器即可实时监控文件的读取进度。

提示:FileReader只是客户端的JavaScript对象,使用FileReader所进行的上传也只是把磁盘上的文件读取到浏览器内存中,并未真正上传到服务器。如果需要真正把客户端文件上传到服务器,则可把文件数据以POST请求方式提交到远程服务器,远程服务器负责接收文件数据,并把数据内容保存到服务器。

实例2:

读取二进制文件:
显示进度:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/440674.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算几何 模板

计算几何模板&#xff1a; #include<iostream> #include<algorithm> #include<queue> #include<cstdio> #include<map> #include<vector> #include<set> #include<string> #include<cmath> #include<cstring> #d…

html中如何让三个方块并排,html – 并排设置两个div,然后设置第三个div

我如何并排设置两个div,而下面的第三个div设置为这样.我当前的代码如下所示,将div放在name div之后Name6:30 PMNoteCSS&#xff1a;#contact_table_data {width:inherit;height:inherit;background-color:#99cc33;max-width:400px;}#info_div_name {width:auto;height:auto;pad…

【ZOJ - 4019】Schrödinger's Knapsack (dp,背包,贪心,组内贪心组间dp)

题干&#xff1a; 有两种物品&#xff0c;k分别为k1&#xff0c;k2&#xff0c;有大小各不一的这两种物品若干&#xff0c;放入容量为c的背包中&#xff0c;能获得求最大的值。放的顺序会影响结果。每次放入一物品&#xff0c;其获得的值都可以用vkr计算&#xff0c;r表示放入…

html 闪烁字,HTML最简单的文字闪烁代码

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼Titlekeyframes blink{0%{opacity: 1;}50%{opacity: 1;}50.01%{opacity: 0;}100%{opacity: 0;}}-webkit-keyframes blink {0% { opacity: 1; }50% { opacity: 1; }50.01% { opacity: 0; }100% { opacity: 0; }}-moz-keyframes blin…

【ZOJ - 4020 】Traffic Light (bfs,分层图)

题干&#xff1a; n*m矩阵a.若a[i][j]1则可以往左右走,若a[i][j]0 则可以往上下走. 每一秒可以按上述规则移动,并且每秒钟矩阵所有的值翻转。 n*m<1e5.问从(sx,sy)到(tx,ty)的最短时间. 解题报告&#xff1a; 这题因为不带权值所以不需要考虑Dijkstra&#xff0c;可以根据…

在计算机应用中mis,在计算机的应用中,“MIS”表示

阅读下列材料&#xff0c;回答有关问题&#xff1a;地理信息系统(GIS)&#xff0c;也称作地理资讯系统&#xff0c;是一门综合性学科&#xff0c;已经广泛地应用在不同的领域&#xff0c;是用于输入、存储、查询、分析和显示地理数据的计算机系统。GIS属于信息系统的一类&#…

【牛客 - 369C】小A与欧拉路(bfs树的直径)

题干&#xff1a; 链接&#xff1a;https://ac.nowcoder.com/acm/contest/369/C 来源&#xff1a;牛客网 小A给你了一棵树&#xff0c;对于这棵树上的每一条边&#xff0c;你都可以将它复制任意&#xff08;可以为0&#xff09;次&#xff08;即在这条边连接的两个点之间再…

html loader的作用,webpack认识loader的作用

举例&#xff1a;如果希望在.html文件中使用style.css样式&#xff0c;我们以前只学习过一种方式&#xff1a;直接在.html中通过link的方式来引入 &#xff0c;这是传统的做法&#xff0c;在webpack语境下&#xff0c;我们将选择一条不同的道路&#xff1a;在js文件中引入了css…

【牛客 - 188C】水图(bfs树的直径,思维)

题干&#xff1a; 链接&#xff1a;https://ac.nowcoder.com/acm/contest/188/C 来源&#xff1a;牛客网 小w不会离散数学&#xff0c;所以她van的图论游戏是送分的 小w有一张n个点n-1条边的无向联通图,每个点编号为1~n,每条边都有一个长度 小w现在在点x上 她想知道从点x出…

5可视化数据大屏模板_可视化大屏模板分享

3个月前的一天&#xff0c;老板找到我&#xff1a;“小王&#xff0c;数据怎么才能产生让人惊艳的感觉呢&#xff1f;”我说&#xff1a;“肯定是用代码让程序员操作一下&#xff0c;再让设计师做一下配色&#xff0c;最好还能是数据实时变化的那种&#xff0c;简直就和电影里一…

delphi webbrowser 显示 html,delphi webbrowser

delphi 怎么判断webbrowser打开网页成功?unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, OleCtrls, SHDocVw; type TForm1 class(TForm) WebBrowser1: TWebBrowser; Button1: TButton; Edit1: …

【蓝桥杯官网训练 - 历届试题】对局匹配(dp,思维,取模)

题干&#xff1a; 问题描述 小明喜欢在一个围棋网站上找别人在线对弈。这个网站上所有注册用户都有一个积分&#xff0c;代表他的围棋水平。   小明发现网站的自动对局系统在匹配对手时&#xff0c;只会将积分差恰好是K的两名用户匹配在一起。如果两人分差小于或大于K&#…

c#12星座速配代码_白羊座今日运势|2020/12/11

整体运势&#xff1a;★★★☆☆爱情运势&#xff1a;★★☆☆☆事业运势&#xff1a;★★☆☆☆财富运势&#xff1a;★★★☆☆幸运数字&#xff1a;7速配星座&#xff1a;金牛座幸运颜色&#xff1a;橙色幸运时刻&#xff1a;12:00-14:00整体运势&#xff1a;接收的消息会比…

计算机网络基础端口号,1 计算机网络基础练习

Ch1 计算机网络基础1.以下网络结构当中哪一种的安全性和保密性较差A. mesh(网状)B. treeC. busD. star2.OSI 参考模型中的OSI 表示的是A. Organization Standard InstituteB. Organization Standard InterconnectionC. Open System InternetD. Open System Interconnection3.多…

【ZOJ - 2969】Easy Task (模拟,数学)

题干&#xff1a; Calculating the derivation of a polynomial is an easy task. Given a function f(x) , we use (f(x)) to denote its derivation. We use x^n to denote xn. To calculate the derivation of a polynomial, you should know 3 rules: (1) (C)0 where C is…

怎么去掉拼写检查的红线_发动机温度过高,水箱“开锅”,我们到底该怎么办?...

车子开久了&#xff0c;难免会出现一些小故障&#xff0c;今天我们就来说一下关于发动机水温过高的问题&#xff0c;这也是老司机常说的“开锅”。发动机水温正常情况是在80-90摄氏度之间&#xff0c;一旦超过这个温度&#xff0c;也就是水温表过了红线的时候&#xff0c;我们就…

北大计算机类学什么,状元们去清华北大选了什么专业?计算机可不是首选,首选你想不到...

状元们去清华北大选了什么专业&#xff1f;计算机可不是首选&#xff0c;首选你想不到。清华大学、北京大学基本上能代表我国国内的顶尖的教育水平&#xff0c;他的生源也是来自于各个地区的佼佼者&#xff0c;我想大家或多或少都会好奇这些状元的首选专业是哪一个专业吧。是近…

【ZOJ - 2972】Hurdles of 110m (dp)

题干&#xff1a; In the year 2008, the 29th Olympic Games will be held in Beijing. This will signify the prosperity of China and Beijing Olympics is to be a festival for people all over the world as well. Liu Xiang is one of the famous Olympic athletes i…

格式说明_ISO11784/85 FDX-B动物芯片格式写码说明

植入式生物芯片口蹄疫、疯牛病、禽流感、非洲猪瘟的蔓延严重危及人类生命安全&#xff0c;引发了人们对动物性食品生产全过程安全追溯管理的重视。因此&#xff0c;有效地利用非接触式无线射频技术(RFID)对其进行控制成为有效的重要手段。一、国际动物识别标准介绍ISO 11784&am…

html手机网站font-size:16em,px、em、rem

px、em、rempx 是固定的长度单位em 是父元素的font-size(字体大小)的值&#xff0c;常用来设置首行缩进2em(2字符)rem 是根节点(html&#xff0c;body)的font-size(字体大小)的值&#xff0c;可以用来做移动端的自适应。为什么要适配移动端px像素(pixel)相对长度单位。相对于显…