Открыть / Сохранить файл в JavaScript

1

Я напишу приложение, которое должно позволить пользователю загружать файлы PNG & JSON, а затем сохранять их.

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

Теги:
canvas

3 ответа

2
Лучший ответ

Вы можете загружать файлы с помощью API файлов (поддерживается только в firefox 3.6 и chrome unstable (возможно, бета-версия)):

http://dev.w3.org/2006/webapi/FileAPI/

В настоящее время нет способа сохранить файл

1

Для обеспечения безопасности вы не можете делать это только с помощью Javascript. Обычные способы доступа к файловой системе из JavaScript требуют помощи чего-то еще:

  • Java-апплеты доступны практически для всех браузеров.
  • ActiveX является опцией в Internet Explorer.
  • В Firefox вы можете использовать extension.
  • Flash также позволяет определенные виды доступа.

Эти, вероятно, все требуют некоторых тайных методов, могут быть отключены пользователем и могут нуждаться в деталях, которые будут специально установлены, или OK'd пользователем.

1

Я вытащу Facebook в разговор. Facebook использует Java для выполнения такой задачи.

Я должен заметить, что вы не можете обращаться к жесткому диску пользователя непосредственно в JavaScript. Это включает в себя чтение, запись, копирование, флаг, что угодно. Это было бы хорошей проблемой безопасности, хотя большинство из нас, которые хотели это сделать (включая меня два года назад), имеют хорошие намерения.

Теперь некоторые браузеры (cough IE) позволяют вам получить доступ к пользовательской файловой системе через ActiveX после того, как они нажмут "разрешить activex"... но это не кросс-браузер/кросс-платформенный, поэтому я бы не стал рекомендовать его. Проверьте: Scripting.FileSystemObject, fopen


Однако вы можете загрузить файл на свой сервер, временно загрузить этот файл на стороне клиента, сделать все, что захотите, сохранить файл на сервере и загрузить изображение пользователю с помощью mime- заголовок "content" из "application/force-download"...

  • 0
    Yeh. Я мог бы загрузить файл, но поддерживать такой эхо-сервер просто скучно.
  • 0
    Тем не менее, требуется эхо-сервер. Это неудачно, и да, это боль. Уверяю вас, что если бы существовал лучший кроссплатформенный / браузерный метод, люди бы сразу запрыгнули на него ...

Ещё вопросы

Сообщество Overcoder
Наверх
Меню