Подтвердить что ты не робот

Открыть локальную папку из ссылки

Как открыть представление локальной папки, нажав на любую ссылку?

Я пробовал много вариантов, например

<a href="file:///D:/Tools/">Open folder</a> или

<a onclick="file:///D:/Tools/">Open folder</a> или

<a onclick="window.open(file:///D:/Tools/)">Open folder</a>

4b9b3361

Ответ 1

Связывание с локальными ресурсами отключено во всех современных браузерах из-за ограничений безопасности.

Для Firefox:

В целях безопасности приложения Mozilla блокируют ссылки на локальные файлы (и каталоги) из удаленных файлов. Сюда входят ссылки на файлы на вашем жестком диске, на подключенных сетевых дисках и доступные через пути Uniform Naming Convention (UNC). Это предотвращает ряд неприятных возможностей, в том числе:

  • Разрешить сайтам обнаруживать вашу операционную систему, проверяя пути установки по умолчанию
  • Разрешить сайтам использовать уязвимости системы (например, C:\con\con в Windows 95/98)
  • Разрешить сайтам определять предпочтения браузера или читать конфиденциальные данные

для IE:

Internet Explorer 6 с пакетом обновления 1 (SP1) больше не позволяет просматривать локальный компьютер из зоны Интернета. Например, если интернет-сайт содержит ссылку на локальный файл, Internet Explorer 6 SP1 отображает пустую страницу, когда пользователь нажимает на ссылку. Предыдущие версии Windows Internet Explorer следили за ссылкой на локальный файл.

для Opera (в контексте рекомендации по безопасности я уверен, что для этого есть более каноническая ссылка):

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

Ответ 2

Решение: Запуск загружаемой ссылки

Во всех браузерах работает, но, как всегда, есть оговорки.

Фон:

"Ярлыки URL" зависят от ОС. Следующее решение для MS Windows связано с отсутствием стандартов между средами.

Если вам требуется поддержка linux для решения ниже, см. статью .
* У меня нет связи с этой статьей, YMMV.

URL-адреса ссылок бывают двух форм:

  • Файлы с расширениями .URL основаны на тексте. Может быть динамически сгенерирован.

    [InternetShortcut]
    URL = Файл:///D:/

  • Файлы с расширением .LNK являются двоичными. Они могут генерироваться динамически, но требуют реализации iShelLinkInterface. Это осложняется ограничениями ОС по умолчанию, которые по праву не позволяют процессу IIS достичь Shell.

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


Обзор/Резюме:

  • Ограничения безопасности не позволят вам открыть проводник пути/запуска непосредственно со страницы (как указано в @Pekka).
  • Сайты, размещенные снаружи (не на вашем локальном компьютере), не позволят файлу:///... uri в соответствии с разрешениями безопасности по умолчанию.

Решение:

Предоставьте загружаемую ссылку (.URL или .LNK) на ресурс. Поведение в браузере будет объяснено в конце сообщения.

  Вариант 1: Создайте файл .lnk и сохраните его на сервере. Из-за двоичного характера файла .LNK это не рекомендуемое решение, но предварительно сгенерированный файл должен быть жизнеспособным.

  Вариант 2: Создайте файл .url и либо сохраните его на сервере, либо динамически сгенерируйте   Это. В моей ситуации я динамически создаю файл .URL.


Сведения о решении (.URL):

  • Добавьте .url к доступным типам MIME на вашем веб-сервере.

    Для открытия IIS сайта выберите MIME-типы и добавьте следующее:

    Имя файла Расширение =.url
    MIME-тип: application/internet-shortcut

    Per @cremax... Для браузеров Webkit, таких как Chrome на серверах Apache, добавьте этот код в .htaccess или http.config:

    SetEnvIf Request_URI ".url $" request_url = url Заголовок добавить Content-Disposition "attachment" env = request_url

  • Файл .url - это текстовый файл, форматированный следующим образом (опять же, это может быть динамически сгенерировано).

    Содержание файла:

    [InternetShortcut]
    URL = файл:///D:

  • Предоставьте ссылку на script, которая генерирует файл .url или сам файл.

    Если вы просто загрузили файл .url на свой сервер, добавьте в свой HTML-код следующее:

    <a href="URIShortcut.url">Round-About Linking</a>


Зависимое от браузера поведение

Chrome: загрузите/сохраните файл .url, затем откройте
В Chrome это поведение можно увеличить, выбрав опцию "Всегда открывать файлы этого типа".

FireFox: Загрузите/сохраните файл .url, затем откройте

Internet Explorer: нажмите "Открыть" и перейдите прямо в каталог (нет необходимости сохранять ярлык)

Internet Explorer имеет предпочтительное поведение, но Chrome и Firefox по крайней мере исправны.

Ответ 3

Только IE6-8 - есть проблема с ActiveX в этом локальном файле в JavaScript:

        function OpenImage(filePath)
        {
            var myshell = new ActiveXObject("WScript.shell");
            myshell.run(filePath, 1, true); 
        }

Ответ 4

вы можете использовать

<a href="\\computername\folder">Open folder</a>

в Internet Explorer

Ответ 5

добавить на клик открыть локальный каталог o локальный файл на google chrome:

Решение от JFish222 работает (решение для файла URL)

Для браузеров Webkid, таких как Chrome на серверах Apache, просто добавьте в .htaccess o http.config этот код:

SetEnvIf Request_URI ".url $" request_url = url Заголовок добавить Content-Disposition "attachment" env = request_url

И первым downlod вашего файла url щелкните по файлу в панели загрузки chromes и выберите "всегда открывать этот файл".

Ответ 6

Локальный проводник - файловый менеджер в расширении веб-браузера может решить проблему с Chrome

но все еще некоторые проблемы с кодировкой