2012-03-03 6 views
4

Я создаю приложение, где хочу показать пользователю диапазон изображений с кодировкой base64. Они отображаются с использованием данных-url. Если пользователь хочет сохранить изображение, он может просто щелкнуть правой кнопкой мыши и сохранить его (или перетащить в папку).Как управлять изображениями base64 при сохранении пользователя

Есть ли способ контролировать файл sugested filename? Сейчас Chrome просто «загружает» и даже не распознает его как образ. Это можно сделать каким-либо образом?

Мне нужен только его для работы в Chrome.

Спасибо за любую помощь

ответ

3

Убедитесь, что вы установили правильный тип mime для изображения в uri данных. Для этого я исправил расширение файла в Chrome 17. Файл был загружен как «download.png» и открыт нормально.

<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUA 
AAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO 
9TXL0Y4OHwAAAABJRU5ErkJggg=="/> 

Однако, если вам действительно необходим полный контроль над именем файла, вы можете воспользоваться html5 «загрузить» атрибут a тега, чтобы задать имя файла и создать объект Blob с данными изображения, которые будут используется для загрузки.

Смотрите демо здесь: http://updates.html5rocks.com/2011/08/Downloading-resources-in-HTML5-a-download

Подробнее здесь: http://dev.w3.org/2009/dap/file-system/file-writer.html

+0

Спасибо, это как раз то, что мне нужно! Вы были правы, что мне не хватает типа mime в datauri. Кроме того, обертывание изображений в a-теге с данными uri как href и имя файла как атрибут загрузки. Это позволяет пользователю загружать изображения, нажимая на них. Я все еще не могу выбрать имя файла, когда изображения перетаскиваются на рабочий стол, но это работает для меня. Еще раз спасибо. – JPuge

Смежные вопросы