【问题标题】:IE9 input type file get binary dataIE9输入类型文件获取二进制数据
【发布时间】:2015-04-15 13:21:30
【问题描述】:

我需要使用 JavaScript 从输入类型文件中获取二进制数据。在 IE10+ 中因为FileReader 没有问题,但在 IE9 中我不知道如何弄清楚。我看到一些帖子建议使用 Flash 或 ActiveX,但 ActiveX 需要对 IE 和 Flash 中的安全设置进行额外更改才能安装 Shockwave。没有其他选择吗?真的吗?

【问题讨论】:

  • 最好的解决方案是让客户知道他们的浏览器不支持您使用的所有功能,因此他们要么升级要么迁移浏览器。即使是 Windows Vista 用户也应该开始在这里受到推动,因为现在距离对 Vista 的扩展支持的结束只有 2 年的时间,即 2017 年 4 月 11 日
  • 我想大多数 IE9 用户都会安装 Flash,因为只有更新的浏览器才能取代它的功能。什么是提到冲击波?我原以为这可以用 Flash (Flash != Shockwave) 完成

标签: javascript internet-explorer internet-explorer-9


【解决方案1】:

不存在任何其他选项吗?真的吗?

真的(不是客户端)。这就是为什么我们有 File API(在 IE10+ 中实现)。

嗯,好吧,您可以使用 Java 小程序,但它们存在与 ActiveX 和 Flash 相同的问题(Chrome 将不再支持 [*nix 上已经不支持])。

要支持 IE9,您基本上必须将文件发布到服务器并在那里处理它。

【讨论】:

  • 现在我知道如何在这里统计很多代表点了。感谢您的教程。作为一种替代方法。也许如果我们可以访问服务器,我们可以请求 base64 文本中的文件。
  • @user4749485:你为什么想要base64文本?而代表是无关紧要的。乐于助人是相关的,而不是代表。
  • @TJ 它很容易转换回二进制。 (“不能做”是 5+ 有帮助吗?)
  • @user4749485:确实如此,但我没有看到任何意义。如果您将文件发送到服务器(对于 IE9,它必须是带有 input type=file 的帖子),base64 是无关紧要的。
  • @user4749485:问题是“真的没有别的办法了吗?”答案是“不”。是的,这很有帮助。仅供参考,我在这方面可能获得的总代表数可能在 0-15 分范围内,因为无论如何我都会达到每日代表上限,所以只有接受才能真正做任何事情。再一次,这并不重要。
【解决方案2】:

如果是您的服务器,您可以在其上放置一个 base64 格式的文件,并将其作为文本/纯文本发送。然后请求该客户端,并轻松将其转换为二进制。

这是一个现成的演示,来自过去的一些 IE8 问题。
它是 xhr'ing "smiley.dataURL.txt" .

https://googledrive.com/host/0B8BLd2qPPV7XS0o2V0JQSkRFM2s/xhr-onload-test.html?dataURL

【讨论】:

  • 强制应用程序/八位字节流然后读取 responseText 将不起作用。 screenshot
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-13
  • 2012-08-06
  • 2019-02-16
  • 1970-01-01
相关资源
最近更新 更多