【问题标题】:Failed to read file through FileReader通过 FileReader 读取文件失败
【发布时间】:2013-11-28 14:25:41
【问题描述】:

以下是我从客户端机器读取文件的 sn-p 代码,它工作正常。

document.getElementById('files').onchange = function(e) { // 从输入元素中获取文件列表 //上传文件(e.target.files);

Files =e.target.files;
   var reader = new FileReader();

            reader.onload = function (e)
            {
                alert("File loaded successfully");
 }reader.readAsText(e.target.files[0]); 

我正在成功收到文件加载警报。但是当我以 json 编码格式复制这个文件对象,然后通过 json 解码得到这个文件对象时,它没有读取文件。

我的编码和解码然后读取文件的代码如下:

indexArray="{'"LayerName":'"'+e.target.files[0]+'"}'

 var obj=JSON.parse(indexArray);

                        Files=obj.RGN;

                       if(obj.RGN)
                       {

                        var reader = new FileReader();
                        reader.onload = function (e)
                        {
                            alert("FIle loaded successfully");
                            var output=e.target.result;
                            console.log("output-----------------------------: "+output);

                        }

                        reader.readAsText(File);   

                       }
                       else
                       {
                           alert("Failed to load file");
                       }   

现在它不工作了,我什至没有加载文件失败。那么我在哪里做错了,我刚刚对文件对象进行了编码,然后解码并读取了该对象?

【问题讨论】:

    标签: javascript filereader


    【解决方案1】:

    因为 obj.RGN 不是文件对象。 Reader.readastext 仅适用于文件对象(异步)。 您应该将 Files 与 e.target.files 相等,然后它将正常工作。

    reader.onload = function (e) {
    
    }
    
    Files=e.target.files;
    reader.readAsText(Files); 
    

    【讨论】:

      猜你喜欢
      • 2018-12-19
      • 1970-01-01
      • 1970-01-01
      • 2016-09-10
      • 2019-07-04
      • 1970-01-01
      • 2012-09-04
      • 1970-01-01
      相关资源
      最近更新 更多