【问题标题】:How do I Read a Local File INTO a webpage via Javascript or Jquery?如何通过 Javascript 或 Jquery 将本地文件读入网页?
【发布时间】:2012-03-27 14:17:50
【问题描述】:

背景:(在你发火之前阅读......)

我希望用户能够从 HTML“文件输入”(在其本地设备上)中选择文本文件并单击上传按钮。我不希望文件直接上传,我希望 javascript 进行一些验证、格式化,然后将格式化的结果显示给用户。根据验证和格式化的结果,用户有几个选项来决定他们想要做什么。 (是的,它也在服务器端得到验证。)

这不是 AJAX 请求,这是要求用户选择一个文件然后上传它,并在此过程中使用 javascript 验证和格式化文件。

问题:

是否可以将文件(由用户选择上传)读取到 HTML 网页中,供用户查看并由 Javascript 或 Jquery 解析?如果可以,怎么做?

必须支持基本浏览器Firefox、Opera、Safari、Chrome、IE8+。

【问题讨论】:

  • HTML5 has some local file access powers,但不要指望它会被用户广泛使用。 IE8 绝对是不可能的;如果您想要旧版浏览器支持,您必须先将文件上传到服务器。
  • 为什么要使用 JavaScript 读取文件?您不能只获取现在服务器端的上传文件并将其包含在服务器的页面中吗?然后,您可以使用 JavaScript 来播放文件内容,因为它们当时在 DOM 中。
  • 还可以查看此讨论中的各种选项:stackoverflow.com/questions/585234/…
  • @kiswa 我可以而且我一直到现在。这所在的服务器非常繁忙,我希望避免额外的流量,直到我知道传入的信息是好的或者至少“应该是好的”这个特定的请求可以触发数百个数据库请求。我想进行“预验证”并确保用户可以看到他们发送的内容。

标签: javascript jquery html file


【解决方案1】:

您会找到最近的东西是FileReader API,它目前是limited browser support 的草稿。

您可能不得不考虑使用已签名的 Java 小程序以获得更广泛的支持(但随后您开始依赖于安装 Java 插件的人)。

【讨论】:

  • 感谢您提供的链接(两者都非常方便),我有点难过 HTML5 还没有得到更好的支持。看起来我会被标准上传所困。不幸的是,对于这种特殊情况,我不能使用 Flash 或 Java 等插件。
  • FileReader 是它自己的规范。它不是 HTML 5 的一部分。
【解决方案2】:

除了未完成和不受支持的技术之外,我只能想到两种方法。

  1. 有一个两步过程,用户将其上传到服务器,服务器将其发回,以便您可以进行任何验证,然后在验证完成后将其发送回服务器(而不是作为上传,你已经有了数据)。

  2. Flash 具有磁盘访问权限,您可以编写一个小的 Flash 电影来接受文件,然后将其交给 javascript,但您依赖于 flash。

【讨论】:

  • 我不认为 Flash 允许您读取 FileReader 之类的文件的内容
猜你喜欢
  • 2012-08-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-22
  • 2011-06-05
  • 2014-02-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多