Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/414.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将Meteor与FileReader一起使用,读取文件时出错_Javascript_File Upload_Meteor_Filereader - Fatal编程技术网

Javascript 将Meteor与FileReader一起使用,读取文件时出错

Javascript 将Meteor与FileReader一起使用,读取文件时出错,javascript,file-upload,meteor,filereader,Javascript,File Upload,Meteor,Filereader,我是新来的流星。我想访问客户端的本地.csv文件。我使用了FileReader方法,但代码总是带着错误退出。下面是代码 html文件 <template name="filePage"> <div> <form id="form"> <label>File: </label> <input type="file" id="file" name="filename" size="50"

我是新来的流星。我想访问客户端的本地.csv文件。我使用了FileReader方法,但代码总是带着错误退出。下面是代码

html文件

<template name="filePage">
<div>
<form id="form">
            <label>File: </label>
            <input type="file" id="file" name="filename" size="50"/><br/>
            <br/>
            <input type="submit" id="submit" value="Upload Now"/>
</form>
</div>
</template>
另外,我试图用嵌入的javascript编写一个html文件。那么“文件阅读器”就可以正常工作了。我想问题不在于我的浏览器或操作系统。 我尝试将“FileReader”javascript放在服务器端方法中,然后从客户端调用该方法。但是出现了一个referenceError,表明“没有定义FileReader”

我真的不明白为什么会发生这个问题??还有其他方法可以实现我的目标吗?

  • 您忘记传递
    事件
    模板
    (e,t)
  • 您可能希望停止表单提交的传播,以避免重新加载页面
    e.stopPropagation()

    e.preventDefault()
  • 您想使用解析后的模板
    t
    来读取元素
    t.find(“#文件”)
  • 您希望使用
    错误
    捕获错误


我可以问一下为什么我们应该在这里使用“e.stopPropagation();e.preventDefault();”,但是当我用html编写嵌入式javascript()时,它是不需要的?请原谅我问了一些天真的问题,我对Meteor和javascript非常陌生。非常感谢。之所以需要它,是因为你使用了
表单
提交
,这两个功能就像一个链接,你不想离开页面。实际上,您可以完全删除表单层,只需说
'click#submit'
而不是
'submit form'
,然后您就不需要停止浏览器更改页面,您可以删除这两行。事实上,知道这一点是很好的,因为有时候你会想使用link
元素,但你不想让它跳转页面
href='javascr…'
不是正确的方法,因为您希望将脚本和html分开。希望这是有道理的。
Template.filePage.events({

    'submit form': function () { 
        var file = document.getElementById("file").files[0];
        var reader = new FileReader();

        reader.onload = function() {
            alert("load succeeded");
          };
        reader.onerror = function(event){    
            alert(event.target.error.code); //I got error code 4 here. 
        }
        reader.readAsText(file);
    },
});
Template.filePage.events({
  'submit form': function (e,t) {
    e.stopPropagation();
    e.preventDefault();

    var file = t.find('#file').files[0];
    var reader = new FileReader();

    reader.onload = function() {
      alert("load succeeded");
    };
    reader.onerror = function(error){    
      alert(error);
    }
    reader.readAsText(file);
  }
});