Сохранение локального файла Javascript или событие onSave для получения сохраненного имени файла - PullRequest
0 голосов
/ 17 ноября 2011

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

В настоящее время мы используем java-апплет для достижения этой функциональности, но поскольку java выходит из моды, нам нужно сделать это с помощью javascript и html5.

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

Я использую html5-файл api для успешного импорта / открытия файлов, так что это полдела. Сложнее всего получить функцию сохранения. Я подхожу ближе, используя iframe и расположение содержимого, но возникают проблемы, когда браузеры настроены на автоматическую загрузку файлов в папку загрузок ... пользователи могут запутаться и не смогут найти только что загруженный файл.

Итак, мой вопрос таков: существует ли какое-либо событие onSave или какой-то способ для окна браузера «Сохранить как ...» вернуть хотя бы имя файла, под которым пользователь сохранил файл?

Кроме того, я изучил apis filesystem / fileWriter html5, но, насколько я понимаю, они ограничены только областью изолированной программной среды локальной файловой системы и доступны только в выпусках chrome dev.

Любая помощь будет оценена!

1 Ответ

1 голос
/ 17 ноября 2011

Нет, нет никакого способа сделать это с чистым JavaScript. Вы можете запустить загрузку с помощью URI данных или iframe с некоторыми заголовками, но вы не можете обойти менеджеры загрузки браузеров.

Вы можете использовать Flash или Java-апплет, чтобы обработать сохранение для вас, или попросить пользователя щелкнуть правой кнопкой мыши ссылку и сохранить как, тогда он сможет выбрать пункт назначения.

Один из популярных вариантов использования Flash - Downloadify .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...