Решение: запуск ссылки для скачивания
Следующее работает во всех браузерах, но как всегда есть предупреждения.
Фон:
"Ярлыки URL "зависят от ОС.Следующее решение предназначено для MS Windows из-за отсутствия стандартов между средами.
Если вам требуется поддержка linux для приведенного ниже решения, см. Эту статью .
* У меня нетВ связи с этой статьей YMMV.
ярлыки URL-адресов представлены в двух формах:
Файлы с расширениями .URL основаны на тексте.Может генерироваться динамически.
[InternetShortcut]
URL = файл: /// D: /
Файлы с расширением .LNKявляются двоичнымиОни могут генерироваться динамически, но требуют реализации iShelLinkInterface.Это усложняется ограничениями ОС по умолчанию, которые по праву не позволяют процессам IIS достичь Shell.
.URL является рекомендуемым решением, поскольку динамическая генерация жизнеспособна для веб-языков / фреймворков и позволяетреализация KISS.
Обзор / Резюме:
- Ограничения безопасности не позволят вам открыть проводник пути / запуска непосредственно со страницы (как указано @Pekka).
- Сайты, размещенные извне (не на вашем локальном компьютере), не допускают файл: /// ... uri с разрешениями безопасности по умолчанию.
Решение:
Укажите загружаемую ссылку (.URL или .LNK) на ресурс.Поведение браузера будет объяснено в конце поста.
Вариант 1: Создайте файл .lnk и сохраните его на сервере.Из-за бинарной природы файла .LNK это не рекомендуемое решение, но предварительно созданный файл должен быть жизнеспособным.
Вариант 2: Создайте файл .url и либо сохраните его на сервере, либо динамически сгенерируйте.В моей ситуации я динамически создаю файл .URL.
Подробная информация о решении (.URL):
Добавить .urlна доступные типы MIME на вашем веб-сервере.
Для IIS откройте сайт, выберите MIME Types и добавьте следующее:
Расширение имени файла = .url
Тип MIME: application / internet-shortcut
Per @cremax ... Для браузеров Webkit, таких как Chrome на серверах Apache, добавьте этот код в .htaccess или http.config:
SetEnvIf Request_URI ".url $"required_url = url Заголовок add Content-Disposition "attachment" env = required_url
.url - это текстовый файл, отформатированный следующим образом (опять же, это может быть сгенерировано динамически).
Содержимое файла:
[InternetShortcut]
URL = файл: /// D:
Укажитессылка на скрипт, который генерирует файл .url, или на сам файл.
Если вы просто загрузили файл .url на свой сервер, добавьте в свой HTML-код следующее:
<a href="URIShortcut.url">Round-About Linking</a>
Поведение, зависящее от браузера
Chrome : скачать / сохранить файл .url, затем открыть
В Chrome это поведение можно дополнить, выбрав параметр «Всегда открывать файлы этого типа».
FireFox : загрузить / сохранить файл.url, а затем открыть
Internet Explorer : нажмите «Открыть» и перейдите прямо к каталогу (не нужно сохранять ярлык)
Internet Explorer имеет предпочтительное поведение, но Chrome и Firefox по крайней мере исправны.