使用什么而不是FileReader for Safari?

时间:2011-10-12 00:49:47

标签: javascript safari filereader

(对于网络编程来说是新手,所以对任何缺乏基础知识表示歉意。)

我的页面允许用户选择一个文件然后读取客户端&显示在页面上的文本框中。我发现这样做的最简单方法是使用FileReader对象,它在Firefox和Chrome中运行良好。

这在Safari(尚未)中不起作用,那么我该怎么做呢?

//When the eventlistener detects a change in the input file...
var file = evt.target.files[0]
var reader = new FileReader();
reader.onload = function (e){document.getElementById('data').value = e.target.result};
reader.readAsText(file);

相关说明:

  • 我正在使用Safari for windows
  • 现在页面是本地的,因为要读取的文件。在我使用标志--allow-file-access-from-files
  • 之前,Chrome存在此问题

2 个答案:

答案 0 :(得分:6)

可悲的是,我能想出的唯一答案是占用一些额外的带宽。

首先,使用类似if (typeof FileReader !== "undefined"Modernizr的内容来跟踪支持FileReader的浏览器的正常流程。否则,通过AJAX将文件发送到回送内容的服务器端脚本。

因此,对于兼容的浏览器,您可以节省一些带宽,对于不兼容的浏览器,您必须为团队选择一个。

答案 1 :(得分:1)

另一个解决方案是使用" FileReader polyfill for Internet Explore和Safari使用Flash"

请参阅:https://github.com/Jahdrien/FileReader