Как Сохранить Изображение с помощью JavaScript?

Я работаю над расширением Chrome: когда вы перетаскиваете изображение, оно будет сохранено на вашем компьютере.
Я узнал, что в HTML5 есть API FileWriter, но на самом деле не могу найти его примера, и поддерживает ли его Chrome?

3 ответов


нет, в HTML5 нет API FileWriter. Вы, вероятно, имеете в виду файл API это позволяет вам читать файлы. И в Chrome даже расширения не разрешено писать файлы, по соображениям безопасности. Поэтому, если вы не хотите связывать плагин NPAPI с вашим расширением (которое вызовет огромное предупреждение при установке), все, что вы можете сделать, это вызвать сообщение загрузки, которое пользователь может принять - или нет. См.Кросс-браузер Сохранить как .txt для возможного подхода (Flash-объекты, такие как Downloadify, являются другими).

редактировать: Я ошибся,есть предложение API FileWriter. Однако до этого еще очень далеко.


Я нашел это. http://www.html5rocks.com/en/tutorials/file/filesystem/ Вы можете найти несколько примеров.

редактировать это скриншот из статьи. Я использую chrome 12.0

сообщение поддержки браузера API FileWriter http://s3.amazonaws.com/twitpic/photos/full/329503613.png?AWSAccessKeyId=AKIAJF3XCCKACR3QDMOA&Expires=1308932374&Signature=DXBdFSjbNqaeJPr%2F0fSAqPWyh2E%3D


Я не думаю, что API FileWriter будет готов и пригоден для использования в течение некоторого времени.

вы можете получить данные изображения в hex, а затем использовать DataURI для "экспорта" его из браузера. Хотя это приводит к файлу, сохраненному с именем файла, таким как"download(1)". Каждый браузер, похоже, имеет разные ограничения размера для DataURIs, и они не большие, хотя для разумного размера это было бы хорошо изображение.

http://en.wikipedia.org/wiki/Data_URI_scheme

в качестве альтернативы вы можете использовать Downloadify, чтобы сохранить его с правильным именем файла (требуется flash и может быть сложно встроить в расширение chrome).

http://davidwalsh.name/downloadify