Можно ли «загрузить» файл только со стороны клиента? (сервер не задействован) - PullRequest
4 голосов
/ 02 декабря 2010

Я пытаюсь сделать простую вещь:

Позволить пользователю выбрать текстовый файл и сохранить его контекст для использования только на стороне клиента.серверная сторона не требуется.

Возможно ли это?

Спасибо.

Ответы [ 5 ]

3 голосов
/ 29 ноября 2013

Это можно сделать с помощью API файлов HTML5, как описано в следующих ресурсах:
https://developer.mozilla.org/en-US/docs/Using_files_from_web_applications
http://www.html5rocks.com/en/tutorials/file/dndfiles/

0 голосов
/ 02 декабря 2010

Полагаю, вы имеете в виду «сохранить его содержимое» и пришли к выводу, что вы хотите что-то делать с этим содержимым на стороне клиента, например извлечь некоторые части, чтобы заполнить форму. В любом случае, сохранять весь файл без изменений на той же машине, откуда он пришел, не имеет смысла. Так что проблема не в том, как загрузить файл, а в том, как открыть / прочитать файл. Вы можете сделать это с помощью Java-апплета, Flash, Silverlight, ActiveX ... и это лишь некоторые из них. JavaScript не вариант. Он не может получить доступ к файловой системе.

0 голосов
/ 02 декабря 2010

Единственный способ добиться этого - это создать плагин / компонент типа ActiveX (или java-апплет), у вас будет гораздо больший контроль над клиентским компьютером.

0 голосов
/ 02 декабря 2010

Если html-страница, на которой размещен ваш javascript, получена с удаленного сервера.Этот сценарий не является доверенным для выполнения действий в вашей локальной файловой системе.

Вы можете больше доверять странице, но это то, что должен сделать ваш пользователь.Если это приложение / Интернет только для использования внутри предприятия, вы, вероятно, можете сделать это централизованно.И каждый браузер обрабатывает это по-своему.Так что это не то, на что вы можете положиться, если у вас нет ограниченной пользовательской базы.

Если ваши (корпоративные) пользователи используют Internet Explorer, вы также можете создать Приложение HTML (просто дайте html-странице расширение hta).Эти страницы имеют полное доверие, но могут быть запущены только из надежного расположения или требовать подтверждения от пользователя.

0 голосов
/ 02 декабря 2010

Нет.JavaScript не может получить доступ к локальной файловой системе.

Однако вы можете установить веб-сервер на свой компьютер и, например, запустить PHP на нем.Тогда вы можете сделать это, даже не отправляя свои данные через сетевое соединение.Это потребует от вас обработки данных в PHP, хотя, вероятно, не то, что вы хотите.Или вы можете просто отправить данные обратно в свой javascript ... но было бы ужасно запустить загрузку только для того, чтобы сделать данные доступными для JavaScript.

...