What to use instead of FileReader for Safari?

守給你的承諾、 提交于 2019-11-26 17:02:13

问题


(Am new to web programming, so apologies for any lack of rudimentary knowledge.)

My page allows a user to select a file that is then read clientside & displayed in a textbox on the page. The easiest way I found to do this was to use a FileReader object, which works fine in Firefox and Chrome.

This doesn't work in Safari (yet), so what should I do instead?

//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);

Relevant Notes:

  • I'm working with Safari for windows
  • Right now the page is local as is the file to read. Chrome had issues with this until I used the flag --allow-file-access-from-files

回答1:


Sadly, the only answer I can come up with will hog some extra bandwidth.

Firstly, use something like if (typeof FileReader !== "undefined" or Modernizr to follow your normal flow for the browsers that DO support FileReader. Otherwise, POST the file via AJAX to some server-side script that echoes back the contents.

So for compliant browsers, you get to save yourself some bandwidth and for non-compliant browsers you have to take one for the team.




回答2:


Another solution is to use "A FileReader polyfill for Internet Explore and Safari using Flash"

See: https://github.com/Jahdrien/FileReader



来源:https://stackoverflow.com/questions/7734150/what-to-use-instead-of-filereader-for-safari

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!