Internet Explorer удаляет расширение .exe из загрузки, если за ним следуют параметры URL
Теперь я обслуживаю файлы с Amazon S3, и я создаю безопасный URL-адрес с помощью API. Работает отлично везде, кроме людей, загружающих файлы .exe в IE. Я тестировал это на IE 8 и 7.
При запуске локального веб-сервера вы можете протестировать, установив notepad.exe в свой веб-корень.
Перейдите в http://localhost/notepad.exe (или эквивалент)
Теперь попробуйте http://localhost/notepad.exe?
Он должен сохранить файл в виде блокнота без расширения. Является ли это "особенностью", потому что в googling ничего не происходит. Благодаря всей проблеме расширений IE вы не можете найти что-либо в расширениях файлов.
Кроме того, если файл имеет несколько периодов в имени, он иногда получает [1] или [] в конце.
Любые идеи? Документы об этом ужасном поведении? Похоже, что это должна быть функция безопасности, но мне еще нужно найти ее, чтобы отключить ее.
И как всегда, спасибо.
Тим
Ответы
Ответ 1
Здесь долгая история, но простой способ - сделать это:
http://www.example.com/dl/test.exe?mysecret=12321412&FixForIE=.exe
Что касается трейлинга [1] или чего-то еще, нет, на самом деле вы ничего не можете с этим поделать, если раньше пользователь загружал с этого URL-адреса.
Ответ 2
У нас была такая же проблема при обслуживании файлов с S3. Оказывается, вам нужно правильно настроить контент-размещение, чтобы IE правильно обрабатывал файлы. А именно, заголовок HTTP
Content-Disposition: attachment; имя файла = "text.exe"
В этой статье описывается чуть подробнее:
http://www.jtricks.com/bits/content_disposition.html