Можно ли загрузить и извлечь zip-файл в указанное место, используя только HTML и JavaScript? - PullRequest
2 голосов
/ 08 декабря 2011

У меня есть веб-страница, на которой пользователям предлагается выбрать zip-файл на своем компьютере и загрузить его.Он также запрашивает адрес на сервере, куда должен идти файл zip.Я хочу, чтобы он работал таким образом, чтобы, когда они сообщали мне, где находится файл на их компьютере и где он находится на моем сервере, затем нажимали «отправить», он должен быть отправлен на мой сервер, помещен в указанный каталог ираспакован.

Я хочу сделать это только на HTML и JavaScript.Это возможно?Если так, как бы я это сделал?

Ответы [ 2 ]

3 голосов
/ 08 декабря 2011

Вы должны сделать это на стороне сервера; браузер клиента не может напрямую записывать в файловую систему сервера, так как это представляет серьезную угрозу безопасности.

Кроме того, даже HTML5 с его File API не может извлекать ZIP-файлы. Вы должны сделать это на сервере с PHP или любым другим языком, который вы используете.

Если вы просто хотите сделать что-то локально на клиенте, вы можете рассмотреть расширение Flash / Java / Browser, но я бы не рекомендовал его по соображениям совместимости и производительности. Лучше всего отправить запрос на сервер для его обработки и отправки обратно. Вы уже обслуживаете страницу HTML, поэтому вы можете использовать тот же сервер для обработки ZIP-файла.

Если, с другой стороны, вы хотите записать ZIP-файл на сервер, у вас есть , чтобы выполнить его на стороне сервера, по причинам, указанным в моем первом абзаце.

0 голосов
/ 08 декабря 2011

Вы можете разархивировать / сжать содержимое в JavaScript, используя rawdeflate .

Как предлагают другие авторы, вы не можете сохранять данные напрямую в локальную файловую систему, используя простой браузер. Вам нужно либо откатить результат обратно с сервера (в этом случае он также может быть разархивирован), либо вы можете использовать Flash, например, Downloadify , если он установлен.

Большинство современных браузеров поддерживают FileAPI для загрузки из локальной файловой системы, конечно, Chrome, Firefox и Opera. Я не проверял IE 9.

...