为了减少服务器的压力,需要前端读取文件数据,然后自己拼接分批提交给后台,这里将读文件记录下来
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>读取文件</title>
<script src="js/shim.js"></script>
<script src="js/xlsx.full.min.js"></script>
<script src="js/jschardet.min.js"></script>
</head>
<body>
<input type='file' value="" id="read" >
</body>
<script>
String.prototype.trim=function(){ //给字符串添加一个去前后空格的方法
return this.replace(/s|xA0/g,"");
}
window.οnlοad=function(){
var file=document.getElementById("read");
file.addEventListener("change",read,false);
/*function resetInpuFile() { //定义一个重置input file控件的方法,否则如果文件不变,不能再次触发input控件的onchange事件
var control = event.target;
//control.replaceWith(control = control.clone(true)); //这个重置方法对vue没用,vue的事件不是直接绑定的,所以复制不了
control.wrap('<form>').closest('form').get(0).reset(); //用一个form包裹input,调用form的reset方法,然后解除包裹
control.unwrap();
}*/
function read(e){
//获取文件类型
var filename=e.target.files[0].name;
var phoneStr = '';
var messageContent='';
console.log(filename);
var fileType=filename.substr(filename.lastIndexOf('.')+1,filename.length);
console.log(fileType);
//检测是浏览器是否支持readAsBinaryString函数
var rABS = typeof FileReader !== 'undefined' && typeof FileReader.prototype !== 'undefined' && typeof FileReader.prototype.readAsBinaryString !== 'undefined';
var reader=new FileReader();
if(rABS){
reader.readAsBinaryString(e.target.files[0