Javascript: кросс-браузерная загрузка и загрузка файлов без сервера - PullRequest
7 голосов
/ 27 августа 2011

Итак, я работаю над веб-приложением, где пользователю необходимо:

  • предоставить файл, полный данных для работы на
  • сохранить свои результаты в файл

Все манипуляции выполняются в javascript, поэтому мне пока не требуется серверный код (только статический хостинг), и мне это нравится.

В Firefox я могу использовать их api манипулирования файлами, чтобы позволить пользователю загружать файл непосредственно в код на стороне клиента (используя стандартный <input type=file/>) и создавать URL объекта из файл, чтобы пользователь мог сохранить файл, созданный клиентским кодом.

<input type="file" id="input" onchange="handleFiles(this.files)">
<a download="doubled" id="ex">right-click and save as</a>
<script>
  function handleFiles(fileList){
    var builder = new MozBlobBuilder();
    var file = fileList[0];
    var text = file.getAsBinary();
    builder.append(text);
    builder.append(text);
    document.getElementById('ex').href = window.URL.createObjectURL( builder.getBlob() );
  }
</script>

Так что это здорово. Теперь я хочу сделать то же самое в других браузерах - или, по крайней мере, в современных версиях других браузеров. Существуют ли похожие API для Chrome и IE? Если так, кто-нибудь уже создал кросс-браузерную оболочку, которую я должен использовать?

Ответы [ 2 ]

1 голос
/ 27 августа 2011

Извлечение FileSaver.js и атрибут a [download] (поддерживается в Chrome dev channel). URL-адреса BLOB-объектов (объектов) в настоящее время имеют ограниченную поддержку .

1 голос
/ 27 августа 2011

Он в основном доступен в Firefox 3.6+, Chrome 10+, Opera 11.1+ и, возможно, Safari 6 и IE 10.

См .: http://caniuse.com/#search=FileReader.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...