js预览上传后的txt文档

2018-01-17  本文已影响0人  眠九

项目中遇到的是,在文本域显示上传后的txt,可供用户修改,并在修改后再提交到后台。

这里要加载两个js,papaparse.js和jschardet.js这两个多用作上传图片后预览,所以用来做txt就更简单了。
界面上简单放一个上传文件按钮和显示文件区域;

<input type="file" onchange="turn()" id="text">
<div id="result" style="height:500px;"></div>

js中两个方法,一个做显示,一个做编码,假定设置为域名的上传。

   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);
                   }
               })
           }
       }
   }
//   验证上传文件编码
    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;
    }
image.png
上一篇 下一篇

猜你喜欢

热点阅读