Как браузер узнает имя файла при загрузке? - PullRequest
2 голосов
/ 14 ноября 2010

Вы можете сказать, что имя файла будет выглядеть на Content-Disposition, но я говорю о том, где в этом заголовке ничего нет, а также URL не такой прямой, как http://website.com/myfile.zip.Я оставляю здесь несколько примеров, но мне интересно, как браузер (я использую FireFox) находит правильное имя в save as dialog.Знает ли он синтаксис URL для известных веб-сайтов?

download links in sourceforge.net
download links in cnet.com
download from your own localhost

Я использовал Fiddler2 для обратного инжиниринга.

URL: http://mesh.dl.sourceforge.net/project/npp-plugins/Function List / FunctionList Plugin v2.1 /FunctionList_2_1_UNI_dll.zip

Пример выходных данных Fiddler:

HTTP/1.1 200 OK
Date: Sat, 13 Nov 2010 22:46:31 GMT
Server: Apache/2.2.9 (Debian)
Last-Modified: Thu, 18 Feb 2010 04:35:26 GMT
ETag: "142a602c-1fe24-47fd87eed7f80"
Accept-Ranges: bytes
Content-Length: 130596
Connection: close
Content-Type: application/zip

РЕДАКТИРОВАТЬ: проблема в том, что Content-Disposition не установлен в окончательном ответе, вместо этого в одном из перенаправления.Заголовок HttpWebRespose содержит последний response header (AllowAutoRedirec t = true).Мне нужно отслеживать все ответы и проверять, есть ли Content-Disposition, затем запомнить его.Как?

Ответы [ 2 ]

5 голосов
/ 14 ноября 2010

do использует content-disposition или любой другой стандартный метод.Посмотрите на этот пример, который я только что получил от SourceForge, используя Live HTTP Headers :

HTTP/1.1 302 Found
X-Powered-By: PHP/5.2.9
Content-Disposition: attachment; filename="FunctionList_2_1_UNI_dll.zip"
Location: http://mesh.dl.sourceforge.net/project/npp-plugins/Function%20List/FunctionList%20Plugin%20v2.1/FunctionList_2_1_UNI_dll.zip
Content-Type: text/html
Content-Length: 0
Date: Sat, 13 Nov 2010 22:30:00 GMT
Server: lighttpd/1.4.26

Обратите внимание, что они также используют перенаправление, возможно, вас это смущает.

0 голосов
/ 14 ноября 2010

Если это не атрибут имени файла заголовка Content-Disposition, скорее всего это перенаправление HTTP 302 или скрытое iframe при загрузке файла.

...