2014-01-19 2 views
1

В Safari, когда я перетаскиваю изображение из окна браузера на рабочий стол, изображение берет его имя файла из последней части URL-адреса. Например:Default filename изображения, перетаскиваемого из окна браузера

http://www.mysite.com/images/05 

имя изображения

05.jpeg 

Является ли это поведение соответствует по всем (последние IE8 +) браузеров?

Могу ли я решить произвольное имя файла, которое получит изображение при вытаскивании из браузера?

Я попытался (в Safari), чтобы установить имя и альт тег изображения, но это не имеет никакого эффекта.

Возможно, я могу определить имя файла, которое оно задает в заголовке ответа сервера при подаче изображения?

ответ

0

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

Я на PHP так ...

header('Content-disposition: inline; filename=the-image.jpg'); 

Когда изображение вытаскивали из окна браузера на рабочий стол имя файла -image.jpg

К сожалению, это не соответствует во всех браузерах, в частности Firefox не соответствует правилу и придерживается последней части URL-адреса для указания имени.

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

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

Например:

http://www.my-site.com/images/05/my%20custom%20filename.jpg 

Что указывает серверу, какой образ клиент хочет является параметром следующие изображений, так в примере.

Важно отметить, что имя файла должно быть URI-компонент закодирован, спасаясь пространства, косая черта, проценты и так далее ...

Имя файла, чтобы быть OS дружеский, должен затем быть извлечено из косых черт, обратные слеши и другие символы, которые в конечном итоге могут создать беспорядок.

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