項(xiàng)目中遇到的是若皱,在文本域顯示上傳后的txt,可供用戶修改,并在修改后再提交到后臺跌穗。
這里要加載兩個(gè)js,papaparse.js和jschardet.js這兩個(gè)多用作上傳圖片后預(yù)覽虏辫,所以用來做txt就更簡單了蚌吸。
界面上簡單放一個(gè)上傳文件按鈕和顯示文件區(qū)域;
<input type="file" onchange="turn()" id="text">
<div id="result" style="height:500px;"></div>
js中兩個(gè)方法砌庄,一個(gè)做顯示羹唠,一個(gè)做編碼,假定設(shè)置為域名的上傳娄昆。
function turn(){
var file = $("#text")[0].files[0];
// 指定上傳文件為txt格式
if(file.name.split(".")[file.name.split(".").length - 1] != "txt"){
alert("請上傳格式為TXT的文件佩微。")
}else{
var reader = new FileReader;
reader.readAsDataURL(file);
reader.onload = function(evt){
var data = evt.target.result;
var encoding = checkEncoding(data);
Papa.parse(file,{
encoding : encoding,
complete : function(res){
var data = res.data;
var str = data.join("<br/>");
$("#result").html(str);
}
})
}
}
}
// 驗(yàn)證上傳文件編碼
function checkEncoding(base64Str){
// 指定上傳文件文本格式
var str = atob(base64Str.split(";base64,")[1]);
var encoding = jschardet.detect(str);
encoding = encoding.encoding;
if(encoding == "window-1252"){
encoding = "ANSI";
}
return encoding;
}