以下是我的代码片段,它从客户机上读取文件并且工作正常。
document.getElementById('files')。onchange = function(e){ //从input元素中检索文件列表 //uploadFiles(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编码格式复制这个文件对象,然后得到这个文件对象,如果它没有读取文件。
我的编码和解码代码然后读取文件如下:
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");
}
现在它不起作用我甚至没有收到失败的文件。所以,我做错了,我刚刚编码了文件对象,然后解码并读取该对象?
答案 0 :(得分:0)
因为obj.RGN不是文件对象。 Reader.readastext仅适用于文件对象(异步)。 您应该将文件等同于e.target.files然后它将正常工作。
即
reader.onload = function (e) {
}
Files=e.target.files;
reader.readAsText(Files);