前端使用js读取文件操作

时间: 2018-07-17阅读: 2680标签: 文件

首先我们定义一个input标签type="file"

<input type="file" onchange="jsReadFiles(this.files)"/>


然后我们定义一个jsReadFiles的方法将文件作为参数;当上传文件的时候读取这个文件

//js 读取文件
function jsReadFiles(files) {
	if(files.length) {
		var file = files[0];
		var reader = new FileReader(); //new一个FileReader实例
		if(/text+/.test(file.type)) { //判断文件类型,是不是text类型
			reader.onload = function() {
				$('body').append('<pre>' + this.result + '</pre>');
			}
			reader.readAsText(file);
		} else if(/image+/.test(file.type)) { //判断文件是不是imgage类型
			reader.onload = function() {
				$('body').append('<img src="' + this.result + '"/>');
			}
			reader.readAsDataURL(file);
		}
	}
}


这里用到了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文件的大小;


站长推荐

1.云服务推荐: 国内主流云服务商,各类云产品的最新活动,优惠券领取。地址:阿里云腾讯云华为云

链接: http://www.fly63.com/article/detial/934

前端工程师也要掌握的几种文件路径知识

之前在做webpack配置时候多次用到路径相关内容,最近在写项目的时候,有一个文件需要上传到阿里云oss的功能,同时本地服务器也需要保留一个文件备份。多次用到了文件路径相关内容以及Node核心API的path模块

在不使用mv命令的情况下移动文件

有时当你需要移动一个文件时,mv 命令似乎不是最佳选项,那么你会如何做呢?不起眼的 mv 命令是在你见过的每个 POSIX 系统中都能找到的有用工具之一。它的作用是明确定义的,并且做得很好

node.js 中的fs.rename()模块

node.js的核心模块 原生模块。修改文件名称,可更改文件的存放路径,方法说明 : 修改文件名称,可更改文件的存放路径.

HTTP实现xls导出和上传文件处理

需求:导出节目单[不保存文件到本地],输出不同的文件类型[csv,xls,xlsx],上传[csv,xls,xlsx]导入节目单

前端实现文件下载功能

通过window.open()打开新页面下载文件;通过a标签打开新页面下载文件;通过文件流的方式下载;如何实现批量下载,且打包文件

源文件是什么?

在开发软件的过程中,我们需要将编写好的代码(Code)保存到一个文件中,这样代码才不会丢失,才能够被编译器找到,才能最终变成可执行文件。这种用来保存代码的文件就叫做源文件(Source File)。

什么是断点续传?前端如何实现文件的断点续传

什么是断点续传?就是下载文件时,不必重头开始下载,而是从指定的位置继续下载,这样的功能就叫做断点续传。前端通过FileList对象获取到相应的文件,按照指定的分割方式将大文件分段,然后一段一段地传给后端,后端再按顺序一段段将文件进行拼接。

分析 gulp 的运作方式

vinyl 是 gulp 所使用的虚拟的文件格式,在它的自述文件是这么说的:“当提到文件时你首先想到的是什么?肯定是路径和内容吧”,它主要记录的信息有:path:文件路径,contents:文件内容

css是什么格式的文件?

css指的是层叠样式表(Cascading Style Sheets),它是一种用来表现HTML或XML等文件样式的计算机语言,是用来表示html样式的一种编程语言,是可以做到网页和内容进行分离的一种样式语言。

nodejs如何调用其他的js文件内容?

将其他js文件与nodejs文件放在同一目录下,然后在nodejs文件中使用require(\\\'js文件路径\\\');将其他js文件引入到nodejs文件中,就可以直接调用其他js文件内容了。

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!