Задать вопрос
@RokeAlvo

Создание файла на клиенте?

Задача срстоит в следующем: есть форма, пользователь ее заполняет, эти данные обрабатываются, из них формируется файл, этот файл добавляется в архив (не пустой, до этого там уже есть файлы), пользователю отдаем итоговый zip
Так вот: хотелось бы сделать это на клиентской стороне, но требуется получить изначальный zip архив, в какую сторону смотреть? Или не изобретать ни чего, а грузить форму на сервер и там все делать?
  • Вопрос задан
  • 168 просмотров
Подписаться 2 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 3
Напрямую работать с файловой системой нельзя, но можно создавать и редактировать отдельные файлы, которые пользователь сам передает вашему приложению. Процесс примерно такой:

1. Создайте <input type="file"> и слушайте событие change;

2. Как только пользователь добавит файл, получите его представление в виде Blob через FileReader;

3. Измените Blob (есть готовые библиотеки вроде zip.js) - добавьте/удалите данные архива здесь;

4. Получите Object URL нового Blob с помощью URL.createObjectURL() и вставьте в атрибут href ссылки для загрузки файла;

5. Вызовите link.click() или просто покажите ссылку для скачивания пользователю, если не работает.
Ответ написан
Комментировать
@Azperin
Дилетант
Форма никак не валидируется чтоле, в любом ведь случае сначала на сервер отправляете. Да и я чет не помню чтобы браузеры научились создавать файлы на стороне клиента, это ж абуз не хилый будет при таком раскладе.
Ответ написан
Robur
@Robur
Знаю больше чем это необходимо
Или не изобретать ни чего, а грузить форму на сервер и там все делать?

да.
даже если вы это сделаете на клиенте - то это будет очень печально. И у вас должна быть очень, очень серьезная причина так делать.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы