Можно ли перехватить файл из <input type = file> в javascript? - PullRequest
2 голосов
/ 01 мая 2009

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

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

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

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

Ответы [ 3 ]

2 голосов
/ 01 мая 2009

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

1 голос
/ 01 мая 2009

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

0 голосов
/ 01 мая 2009

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

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

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

...