前端使用js读取文件
前端使用js读取文件
首先我们定义一个input标签type="file"
<input type="file" οnchange="jsReadFiles(this.files)"/>
然后我们定义一个jsReadFiles的方法将文件作为参数;当上传文件的时候读取这个文件
1 //js 读取文件
2 function jsReadFiles(files) { 3 if (files.length) { 4 var file = files[0];
5 var reader = new FileReader();//new一个FileReader实例
6 if (/text+/.test(file.type)) {//判断文件类型,是不是text类型
7 reader.onload = function() { 8 $('body').append('<pre>' + this.result + '</pre>');
9 }
10 reader.readAsText(file);
11 } else if(/image+/.test(file.type)) {//判断文件是不是imgage类型
12 reader.onload = function() {13 $('body').append('<img src="' + this.result + '"/>');
14 }
15 reader.readAsDataURL(file);
16 }
17 }
18 }
这里用到了html5的FileReader这个对象来完成;
FileReader接口的方法:
readAsBinaryString file 将文件读取为二进制编码 readAsText file,[encoding] 将文件读取为文本,其中第二个参数是文本的编码方式,默认值为 UTF-8 readAsDataURL file 将文件读取为DataURL abort (none) 中断读取操作(无论读取成功或失败,方法并不会返回读取结果,这一结果存储在result属性中)
相关事件:
onabort 中断 onerror 出错 onloadstart 开始 onprogress 正在读取 onload 成功读取 onloadend 读取完成,无论成功失败
文件一旦开始读取,无论成功或失败,实例的 result 属性都会被填充。如果读取失败,则 result 的值为 null ,否则即是读取的结果。
如果读取文件过大的话fileReader允许分段读取文件;
var blob_file;
if(file.webkitSlice) { //chrome
blob_file= file.webkitSlice(start, end + 1, 'text/plain;charset=UTF-8');
} else if(file.mozSlice) { //Firefox
blob_file= file.mozSlice(start, end + 1, 'text/plain;charset=UTF-8');
}
成功读取文件:
图片上传成功,只是图片路径变成了base64编码的形式。
顺便唠叨一下base64编码的优缺点:
优点:
1.减少了http请求。
2.没有跨域的问题。
3.直接放在路径里不需要清理缓存。
缺点:
1.IE6/7不支持(不过这个问题不大);
2.base64本质上是将图片以二进制的字母展示,字符量过大无形中增加了css/html文件的大小;
http://www.taodudu.cc/news/show-4784458.html
相关文章:
- JavaScript专精系列(6)——FileReader 文件读取
- 通达信智能买卖指标公式
- 第113章 SQL函数 QUARTER
- 重要的 SQL Server 函数 - 日期函数
- Spark SQL 日期和时间戳函数
- 如何将浏览器设置对应的国家?
- 欺骗的艺术:为何Tor大陆被禁止,为何俄罗斯美国成漏洞榜一二,网络安全带你揭秘...
- 最详细tron节点搭建同步教程
- 获取URL节点内容
- 使用xshell实现内网穿透与socket代理
- linux节点测试,linux中speedtest-cli 选择测试节点(服务器)例子
- SSH免密登陆节点互信
- LeanCloud 国内节点与国际节点如何选择?
- CPU虚拟化的三种技术
- 网卡虚拟化技术详解
- CPU硬件辅助虚拟化技术
- 将Excel表格转成SQL脚本
- Python Excel处理脚本
- EXCEL拼接SQL脚本
- 大新闻!微软正考虑添加 Python 为官方的 Excel 脚本语言
- IP地址最后一位自动增加为3位的EXCEL脚本
- python处理excel现有的脚本_Python脚本操作Excel实现批量替换功能
- 哥特体css样式叫什么,css – 世纪哥特字体可用性问题
- iOS字体样式获取
- 字体——CSS
- 程序员面试软技能
- 网页设计作业下载
- java 设计模式.pdf 免费下载
- 项目_功能模块_基于Spring Boot的文件上传下载功能的设计与实现
- 单片机课程设计及项目下载
前端使用js读取文件相关推荐
- node.js读取文件中文乱码问题
node.js读取文件中文乱码问题 出现乱码原因: 在windows中,默认的中文编码方式是根据系统的locale决定的,中文系统中的默认的编码方式为gb2312而不是utf-8 解决方法: 如果读取 ...
- 前端读取文件图片信息流;js读取图片不同信息流;js读取图片;前端就js读取二进制数据;前端js读取文件流使用FileReader对象的readAsDataURL方法来读取图像文件;
原文链接 FileReader来把文件读入内存,并且读取文件中的数据. readAsDataURL方法可以在浏览器主线程中异步访问文件系统,读取文件中的数据,且读取后 result 为 DataURL ...
- linux中js文件有乱码,解决node.js读取文件时中文乱码问题
node.js不能很好地支持中文字符,在读取文件的时候,会出现对中文内容读取的乱码问题(linux系统下默认utf-8编码,一般不会出现该问题,但windows和部分虚拟机由于文件存储格式不同,可能会 ...
- chrome js 读取文件夹_JS读取/创建本地文件及目录文件夹的方法
注:以下操作只在IE下有效! Javascript是网页制作中离不开的脚本语言,依靠它,一个网页的内容才生动活泼.富有朝气.但也许你还没有发现并应用它的一些更高级的功能吧?比如,对文件和文件夹进行读. ...
- 前端JS读取文件内容并展示到页面上
核心法宝:FileReader {this.returnDomFun(<><UploadFiletitle={'AAAA'}fileName={fileName}onChangeIn ...
- 前端(vue/js)下载文件(xlsx、ts等格式)
// 下载文件// obj是调用接口拿到的数据,name是文件名,suffix是格式后缀 export function downloadFile(obj, name, suffix) {const ...
- chrome js 读取文件夹_使用JavaScript遍历本地文件夹的文件
This blog is written based on Chrome 45.0.2454.85 m. In HTML5 there is one additional attribute avai ...
- js读取文件报错304
不是报错,是http响应码. 304的含义是:自从上次请求后,请求网页未修改过.服务器返回此响应式,不会返回网页内容.请求会使用本地缓存.
- js 读取php页面内容,js读取html文件 js获取html页面显示内容
CSS布局HTML小编今天和大家分享HTML或者JS读取TXT文件内容的代码 如题,CSS布局HTML小编今天和大家分享HTML或者JS读取TXT文件内容的代码 JS读取TXT文件内容的代码如下: 读 ...
最新文章
- 2022-2028年中国女式西装行业研究及前瞻分析报告
- 样式集(一) 通用商品列表样式
- 蜜糖变砒霜:90%美国公司区块链项目将不再重启
- Tomcat启动特慢之SecureRandom问题解决
- httpwebrequest超时时间timeout设置无效_【SpringBoot WEB 系列】RestTemplate 之超时设置...
- Android我的便签-----SQLite的使用方法
- 【CMS】安装CMS
- 【已解决】Exception in thread “Thread-0“ redis.clients.jedis.exceptions.JedisConnectionException: java.n
- Systemd-CentOS7系统服务介绍与CentOS6服务对比
- Shell脚本中循环select命令用法笔记
- 实现链栈的各种基本运算的算法_LeetCode基础算法题第78篇:如何不用加减号实现两数的加法运算?...
- vue2.0 唤起百度地图app_开车选高德,出门靠百度,高德百度地图APP对比
- python计算函数转公式(转Latex公式)
- java bigram_Java BiGramDictionary.getBiFrequency方法代碼示例
- 抓取百度页面html,百度蜘蛛不抓取页面的解决方法
- Banner框架实现图片轮播
- Flutter 数据持久化
- 一条B站广告,带动市值增长5亿!UP主“何同学”有什么魔力?
- Node抓取有道精品课视频
- 破解flashFXP密码全过程
热门文章
- java ikvm viewer,通过IPMI KVM安装操作系统
- php与ui设计的区别,UI设计和平面设计的区别
- Orleans 2.0 官方文档 —— 4.5 Grains - 观察者
- C++中const的作用(至少要说出3个)
- os.Open()和os.OpenFile()
- 基于matlab/simulink的交流电机调速系统建模与仿真,基于MATLABSIMULINK的交流电机调速系统建模与仿真...
- 计算机监听的端口,侦听计算机的指定端口并分析其数据包,监听,本,解析
- MyBatis手动SQL分页
- 计算机网络名为pc是什么意思啊,网络pc的意思 什么叫网络pc - 云骑士一键重装系统...
- java反编译工具(class转java)