【发布时间】:2011-04-15 18:25:54
【问题描述】:
我必须阅读 csv 文件客户端的前几行,以便在上传大文件之前向用户提供预览。
我正在使用 c# 和 ASP.Net (VS2010)
有谁知道如何做到这一点?而且它适用于所有浏览器!?!
(不能使用activeX左右,我们不希望我们的客户安装一些东西!)
一个示例代码会很棒!
提前致谢!
【问题讨论】:
标签: c# javascript asp.net visual-studio-2010 html
我必须阅读 csv 文件客户端的前几行,以便在上传大文件之前向用户提供预览。
我正在使用 c# 和 ASP.Net (VS2010)
有谁知道如何做到这一点?而且它适用于所有浏览器!?!
(不能使用activeX左右,我们不希望我们的客户安装一些东西!)
一个示例代码会很棒!
提前致谢!
【问题讨论】:
标签: c# javascript asp.net visual-studio-2010 html
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 文件。
【讨论】:
substring 才刚刚开始。
在 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(?!)。
【讨论】:
您无法使用原生 JavaScript 读取本地文件。
您可以使用 activeX 作为对使用 IE 的渐进式增强(尽管向 IE 用户提供增强的体验与我所支持的一切背道而驰!)。
如果您可以使用 Flash,请查看Read local file in Flash。
【讨论】: