前台JS(type=‘file’)读取本地文件的内容,兼容各种浏览器

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了前台JS(type=‘file’)读取本地文件的内容,兼容各种浏览器相关的知识,希望对你有一定的参考价值。

【自己测了下,能兼容各种浏览器,但是读取中文会出现乱码。自己的解决方法是用notepad++把txt文件编码改为utf-8(应该是和浏览器编码保持一致吧?。。)】

原文  http://blog.csdn.net/xwq1012/article/details/41941895

前台JS读取本地文件内容,兼容IE7、8、9、10 FF Chrome等各种版本,纠结了好长时间,终于找到方法,希望能帮到你,代码如下。直接复制保存为html运行看效果。

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<script>
function upload(input) {
	//支持chrome IE10
	if (window.FileReader) {
		var file = input.files[0];
		filename = file.name.split(".")[0];
		var reader = new FileReader();
		reader.onload = function() {
			console.log(this.result)
			alert(this.result);
		}
		reader.readAsText(file);
	} 
	//支持IE 7 8 9 10
	else if (typeof window.ActiveXObject != ‘undefined‘){
		var xmlDoc; 
		xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); 
		xmlDoc.async = false; 
		xmlDoc.load(input.value); 
		alert(xmlDoc.xml); 
	} 
	//支持FF
	else if (document.implementation && document.implementation.createDocument) { 
		var xmlDoc; 
		xmlDoc = document.implementation.createDocument("", "", null); 
		xmlDoc.async = false; 
		xmlDoc.load(input.value); 
		alert(xmlDoc.xml);
	} else { 
		alert(‘error‘); 
	} 
}
</script>
<title>file upload</title>
</head>
<body>
	<input type="file" onchange="upload(this)" />
</body>
</html>

 

以上是关于前台JS(type=‘file’)读取本地文件的内容,兼容各种浏览器的主要内容,如果未能解决你的问题,请参考以下文章

用js获取input中type=file文件内容

FileReader读取本地文件

Node.js-nodejs可否读取远程文件到本地 有没有像php file

js怎么读取本地txt文件

js读取文件时如何设置编码

用javascript如何读取本地TXT文件?