前端使用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读取文件相关推荐

  1. node.js读取文件中文乱码问题

    node.js读取文件中文乱码问题 出现乱码原因: 在windows中,默认的中文编码方式是根据系统的locale决定的,中文系统中的默认的编码方式为gb2312而不是utf-8 解决方法: 如果读取 ...

  2. 前端读取文件图片信息流;js读取图片不同信息流;js读取图片;前端就js读取二进制数据;前端js读取文件流使用FileReader对象的readAsDataURL方法来读取图像文件;

    原文链接 FileReader来把文件读入内存,并且读取文件中的数据. readAsDataURL方法可以在浏览器主线程中异步访问文件系统,读取文件中的数据,且读取后 result 为 DataURL ...

  3. linux中js文件有乱码,解决node.js读取文件时中文乱码问题

    node.js不能很好地支持中文字符,在读取文件的时候,会出现对中文内容读取的乱码问题(linux系统下默认utf-8编码,一般不会出现该问题,但windows和部分虚拟机由于文件存储格式不同,可能会 ...

  4. chrome js 读取文件夹_JS读取/创建本地文件及目录文件夹的方法

    注:以下操作只在IE下有效! Javascript是网页制作中离不开的脚本语言,依靠它,一个网页的内容才生动活泼.富有朝气.但也许你还没有发现并应用它的一些更高级的功能吧?比如,对文件和文件夹进行读. ...

  5. 前端JS读取文件内容并展示到页面上

    核心法宝:FileReader {this.returnDomFun(<><UploadFiletitle={'AAAA'}fileName={fileName}onChangeIn ...

  6. 前端(vue/js)下载文件(xlsx、ts等格式)

    // 下载文件// obj是调用接口拿到的数据,name是文件名,suffix是格式后缀 export function downloadFile(obj, name, suffix) {const ...

  7. chrome js 读取文件夹_使用JavaScript遍历本地文件夹的文件

    This blog is written based on Chrome 45.0.2454.85 m. In HTML5 there is one additional attribute avai ...

  8. js读取文件报错304

    不是报错,是http响应码. 304的含义是:自从上次请求后,请求网页未修改过.服务器返回此响应式,不会返回网页内容.请求会使用本地缓存.

  9. js 读取php页面内容,js读取html文件 js获取html页面显示内容

    CSS布局HTML小编今天和大家分享HTML或者JS读取TXT文件内容的代码 如题,CSS布局HTML小编今天和大家分享HTML或者JS读取TXT文件内容的代码 JS读取TXT文件内容的代码如下: 读 ...

最新文章

  1. 2022-2028年中国女式西装行业研究及前瞻分析报告
  2. 样式集(一) 通用商品列表样式
  3. 蜜糖变砒霜:90%美国公司区块链项目将不再重启
  4. Tomcat启动特慢之SecureRandom问题解决
  5. httpwebrequest超时时间timeout设置无效_【SpringBoot WEB 系列】RestTemplate 之超时设置...
  6. Android我的便签-----SQLite的使用方法
  7. 【CMS】安装CMS
  8. 【已解决】Exception in thread “Thread-0“ redis.clients.jedis.exceptions.JedisConnectionException: java.n
  9. Systemd-CentOS7系统服务介绍与CentOS6服务对比
  10. Shell脚本中循环select命令用法笔记
  11. 实现链栈的各种基本运算的算法_LeetCode基础算法题第78篇:如何不用加减号实现两数的加法运算?...
  12. vue2.0 唤起百度地图app_开车选高德,出门靠百度,高德百度地图APP对比
  13. python计算函数转公式(转Latex公式)
  14. java bigram_Java BiGramDictionary.getBiFrequency方法代碼示例
  15. 抓取百度页面html,百度蜘蛛不抓取页面的解决方法
  16. Banner框架实现图片轮播
  17. Flutter 数据持久化
  18. 一条B站广告,带动市值增长5亿!UP主“何同学”有什么魔力?
  19. Node抓取有道精品课视频
  20. 破解flashFXP密码全过程

热门文章

  1. java ikvm viewer,通过IPMI KVM安装操作系统
  2. php与ui设计的区别,UI设计和平面设计的区别
  3. Orleans 2.0 官方文档 —— 4.5 Grains - 观察者
  4. C++中const的作用(至少要说出3个)
  5. os.Open()和os.OpenFile()
  6. 基于matlab/simulink的交流电机调速系统建模与仿真,基于MATLABSIMULINK的交流电机调速系统建模与仿真...
  7. 计算机监听的端口,侦听计算机的指定端口并分析其数据包,监听,本,解析
  8. MyBatis手动SQL分页
  9. 计算机网络名为pc是什么意思啊,网络pc的意思 什么叫网络pc - 云骑士一键重装系统...
  10. java反编译工具(class转java)