Можно ли перехватить файл из <input type=file> в javascript?

StackOverflow https://stackoverflow.com/questions/809851

  •  03-07-2019
  •  | 
  •  

Вопрос

Можно ли прочитать содержимое файла, выбранного с помощью элемента управления вводом файла?Я хочу сделать что-то вроде:

<input type="file" id="fileInput" onblur="readFile(this)"/>

<script language="javascript">
   function readFile(file) {
     document.write(file);
   }
</script>

Возможно ли что-нибудь подобное?или загрузка файла просто отправляет файл на сервер.

Это было полезно?

Решение

Это возможно в Fire Fox, но он не стандартизирован, поэтому его невозможно перенести в браузеры (например, WebKit его не поддерживает).Лучше всего, вероятно, загрузить файл на сервер, а затем загрузить его снова, используя XMLHTTPRequest.

Другие советы

Вы можете это сделать, если используете HTA (приложение гипертекстового терминала, см. http://msdn.microsoft.com/en-us/library/ms536496(VS.85).aspx).В этом случае вы будете привязаны к Internet Explorer, но сможете иметь доступ к файлам, реестру и т. д.Есть (конечно) проблемы с безопасностью.

Вероятно, это невозможно во многих браузерах.Что произойдет, если мы предоставим арбитражному javascript возможность читать произвольный файл в файловой системе, используя учетные данные пользователя?ПЛОХИЕ ВЕЩИ.Вредоносный JavaScript может легко забрать данные файла и отправить их обратно на сервер, незаметно отслеживая все ваши файлы в фоновом режиме.

Я сомневаюсь, что это возможно, и настоятельно не рекомендую этого делать.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top