2015-04-15 8 views
1

Мне нужно получить двоичные данные из файла входного типа с помощью JavaScript. В IE10 + проблем нет из-за FileReader, но в IE9 я не знаю, как это понять. Я видел сообщение, которое рекомендует использовать Flash или ActiveX, но для установки Shockwave для ActiveX потребуются дополнительные изменения в настройках безопасности в IE и Flash. Нет ли других вариантов? В самом деле?IE9 тип входного типа получить двоичные данные

+0

Лучшее решение для этого - дать клиенту понять, что их браузер не поддерживает все функции, которые вы используете, чтобы они либо обновляли, либо переносили браузеры. Даже пользователям _Windows Vista_ следует начинать подталкивать сюда, потому что конец расширенной поддержки Vista теперь всего лишь 2 года от _April 11, 2017_ –

+0

Я бы предположил, что у большинства пользователей IE9 будет установлен Flash, поскольку только новые браузеры заменяют его функциональность. Что такое упоминание о Shockwave? Я бы подумал, что это можно сделать только с помощью Flash (Flash! = Shockwave) – Katana314

ответ

4

Нет других вариантов? В самом деле ?

Действительно (не на стороне клиента). Это Почему у нас есть API файлов (который реализован в IE10 +).

Ну, ладно, вы можете использовать Java-апплет, но у них такие же проблемы, как ActiveX и Flash (и они не будут поддерживаться в Chrome намного дольше [уже не включены * nix]).

Для поддержки IE9 вам в основном придется публиковать файл на сервере и обрабатывать его там.

+1

^- этот голос вызывает мнение многих веб-разработчиков – Tschallacka

+0

Теперь я знаю, как подсчитать количество репрессий. спасибо за учебник. В качестве альтернативного подхода. Возможно, если у нас есть доступ к серверу, мы можем запросить файл в тексте base64. – user4749485

+0

@ user4749485: Зачем вам нужен текст base64? И репутация не имеет значения. Быть полезным релевантно, а не rep. –

1

Если это ваш сервер, вы можете поместить на него файл в формате base64 и отправить его как текст/plain. Затем запросите эту клиентскую сторону и легко конвертируйте ее в двоичную.

Вот готовая демонстрация, из некоторых выпусков прошлого IE8.
Это xhr'ing "smiley.dataURL.txt".

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

+0

принудительное приложение/октет-поток, а затем чтение responseText не будет работать. [Скриншот] (https://googledrive.com/host/0B8BLd2qPPV7XS0o2V0JQSkRFM2s/that-dont-work.png) – user4749485

Смежные вопросы