我必须阅读csv文件客户端的前两行,以便在上传大文件之前向用户显示预览。
我在ASP.Net(VS2010)中使用c#
有谁知道如何做到这一点?它也适用于所有浏览器!?!
(不可能使用activeX左右,我们不希望我们的客户安装东西!)
示例代码会很棒!
提前致谢!
答案 0 :(得分:3)
Firefox 3.6+和Chrome(至少版本6,可能是旧版本)支持File API,它允许您从文件输入中读取本地文件。
以下是一个快速示例:
function handleFile(file) {
var reader = new FileReader();
reader.onload = function(e) {
// Here's where you would parse the first few lines of the CSV file
console.log(e.target.result);
};
reader.readAsText(file);
}
在你的HTML中,你会有这样的东西:
<input type="file" onchange="handleFile(this.files[0])" />
当然,在现实生活中,你应该优雅地降低它。
file
对象具有name
和type
属性,如果您想要更严格,可以使用这些属性来验证它是否为CSV文件。
答案 1 :(得分:1)
您无法使用vanilla JavaScript读取本地文件。
您可以将activeX用作使用IE的渐进增强功能(即使为IE用户提供增强的体验也违背了我所要求的一切!)。
如果您可以使用Flash,请查看Read local file in Flash。
答案 2 :(得分:1)
不,你不能使用javascript从用户的机器上读取文件。如果你想用跨浏览器的方式做这件事,你必须得到Flash或Java之类的帮助。
答案 3 :(得分:1)
HTML5中有W3C proposal for a File API。我针对this test运行了几个浏览器,发现Firefox 3.6和Chrome 6支持File Reader API
和Local Storage
。 Safari 5(在Windows上)支持Local Storage
但不支持 File Reader API
。抱歉,我无法测试IE9,因为公司政策已经将IE6(?!)固定到位。