Задача срстоит в следующем: есть форма, пользователь ее заполняет, эти данные обрабатываются, из них формируется файл, этот файл добавляется в архив (не пустой, до этого там уже есть файлы), пользователю отдаем итоговый zip
Так вот: хотелось бы сделать это на клиентской стороне, но требуется получить изначальный zip архив, в какую сторону смотреть? Или не изобретать ни чего, а грузить форму на сервер и там все делать?
Напрямую работать с файловой системой нельзя, но можно создавать и редактировать отдельные файлы, которые пользователь сам передает вашему приложению. Процесс примерно такой:
1. Создайте <input type="file"> и слушайте событие change;
2. Как только пользователь добавит файл, получите его представление в виде Blob через FileReader;
3. Измените Blob (есть готовые библиотеки вроде zip.js) - добавьте/удалите данные архива здесь;
4. Получите Object URL нового Blob с помощью URL.createObjectURL() и вставьте в атрибут href ссылки для загрузки файла;
5. Вызовите link.click() или просто покажите ссылку для скачивания пользователю, если не работает.
Форма никак не валидируется чтоле, в любом ведь случае сначала на сервер отправляете. Да и я чет не помню чтобы браузеры научились создавать файлы на стороне клиента, это ж абуз не хилый будет при таком раскладе.