2012-09-11 30 views
2

提前道歉,因为我对javascript很陌生。基本上,我拼凑了两个脚本,并且我正在努力工作。我知道JavaScript无法正常访问本地文件,但使用File object可能有可能吗?获取方法获取csv文件的内容

在下面的代码中,如果我选择的文件是CSV文件,如何将它传递给下一个函数$.get('data.csv', function(data),因此'data.csv'实际上是选择的文件?

<html> 
<script type="text/javascript"> 

    document.getElementById('file').addEventListener('change', handleFileSelection, false); 

    function handleFileSelection(evt) { 
     console.log(evt); 
     var f = evt.target.files[0]; 
    } 

    $(document).ready(function() { 

     $.get('data.csv', function(data) { 
     // Split the lines 
     var lines = data.split('\n'); 

     //more code 

     }); 

    }); 
</script> 

<body> 
    <input type="file" id="file" name="file" /> 
    <output id="list"></output> 
</body> 

</html> 

+2

不是一个解决方案,但是您试图过早添加侦听器,该元素尚不存在。如果您使用jQuery,请使用DOMReady fn,否则,将其放入内联或使用'window.onload'添加它。 – RobG

回答

1

的第一个问题是我在这里看到的是,你想提早添加事件监听器比创建实际的元素(如RobG说的)。

而我可以提到的第二个问题是,您尝试使用$.get解析本地CSV文件。如果您使用的是jQuery,那么$.get会对某个URL发出GET异步请求,而这不是您需要的。您必须调查FileReader对象。我不熟悉它,所以我不能提供工作代码的示例,但可以查找一些示例here

+1

谢谢 - 'FileReader'正是我所需要的。如果有人感兴趣,我在这里找到了一个工作示例http://www.html5rocks.com/en/tutorials/file/dndfiles/ – user3357963

+0

我很高兴这有助于您 – haynar