Как Chrome определяет имя файла, сохраняемого на диск при загрузке файла?
Всякий раз, когда я загружаю файл с определенного веб-сайта, над которым я работаю (как разработчик), Chrome добавляет подчеркивание в конец расширения файла. (См .: Chrome в Windows, добавление подчеркивания к загруженным файлам? ). Я поиграл с различными заголовками типа контента и расположения контента, и кажется, что Chrome игнорирует имя файла, указанное в заголовке Content-Disposition. Например, если я сделаю запрос на загрузку файла, и ответ вернется со следующими заголовками (среди прочих):
Content-Disposition: attachment;filename="example.pdf"
Content-Type: application/pdf
... имя файла, сохраненного на диск, остается исходным именем файла. В этом примере исходный файл называется test.pdf
, и вместо сохранения его как example.pdf
(как указано в Content-Disposition) он сохраняется на диск как test.pdf
. Похоже, что это справедливо для любого типа файла - даже такого простого, как файл .txt. Кажется, что нет никаких других заголовков ответа HTTP, диктующих имя файла.
Есть ли что-то особенное, что делает Chrome, чтобы определить имя файла, сохраняемого на диск? Если да, возможно ли переопределить это поведение?
Я понимаю, что Chrome переименует определенные загруженные файлы, которые он считает угрозой безопасности (например, переименование .lnk в .download), но даже в таком случае он по-прежнему игнорирует мои заголовки Content-Disposition для безопасного файла типы.