【问题标题】:Read CSV file selected at client side in C# through AJAX?通过AJAX读取在C#客户端选择的CSV文件?
【发布时间】:2013-01-07 14:09:32
【问题描述】:

我有一个要求,用户将在本地选择一个 CSV 文件,我必须读取文件内容并将它们转储到 JQGrid 上。是的,浏览器是 IE :)..我应该怎么做才能做到这一点?

【问题讨论】:

  • 您无法在客户端读取文件,因此您需要将其上传到服务器而不是根据需要进行解析。

标签: c# jquery asp.net ajax jqgrid-asp.net


【解决方案1】:

实际上,您可以使用所有新的 HTML5 功能来做到这一点,所以如果您要使用 IE9+

http://www.html5rocks.com/en/tutorials/file/dndfiles/

看看这个。

基本上,您需要 FileReader 组件 (FileReader.readAsText(Blob|File, opt_encoding)),然后只需使用正则表达式或任何让您的山羊漂浮的东西来解析所有内容。

如果您确实需要在客户端和旧版 IE 中执行此操作,也许 ActiveX 是一个解决方案:

ActiveX' FileSystemObject

【讨论】:

  • 然后参考 Rory McCrossan 的评论,除非你使用 ActiveX,否则我将扩展答案
【解决方案2】:
【解决方案3】:

除非你不能使用 HTML 5(低版本的 ie 等):

Javascript 不能直接访问文件系统,所以你将不得不使用文件上传标签并在服务器上解析它:http://webdesign.about.com/od/htmltags/p/input-file-tag.htm

然后您可以使用 AJAX 查询内容并将其拉回网格中。

【讨论】:

  • 您可以使用 FileReader 读取文件客户端,尽管 IE 的支持(不出所料)滞后。 developer.mozilla.org/en-US/docs/DOM/FileReader
  • 只要他们使用的 IE 版本确实支持它......我对公司不再有当前浏览器的信心。
猜你喜欢
  • 2011-04-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-21
  • 1970-01-01
  • 2013-03-30
  • 2021-03-20
  • 1970-01-01
相关资源
最近更新 更多