Как сделать так, чтобы HTML-ссылка открывала папку
106
Мне нужно разрешить пользователям приложения открывать папку, щелкая ссылку на веб-странице. Путь к папке находится в сети и доступен отовсюду. Я наверное уверен, что нет простого способа сделать это, но может я ошибаюсь?
Я ответил ниже; это обычное требование корпоративных веб-приложений, которое становится практически невозможным из-за неправильной защиты (должна быть возможность разрешить файловые ссылки на доверенных http-страницах). Я только тщательно тестировал Windows.
Эндрю Даффи
Ответы:
107
Вы хотите открыть общую папку в проводнике Windows? Вам нужно использовать file:ссылку, но есть предостережения:
Internet Explorer будет работать, если ссылка представляет собой преобразованный путь UNC ( file://server/share/folder/).
в IE, только если путь UNC и веб-сайт, содержащий ссылку, находятся в одном домене, то есть только во внутренней сети.
Стефан Штайгер
4
Я думаю, что это больше не правильно - новые версии IE, похоже, блокируют это поведение так же, как Chrome / Safari и т. Д.
ZeekLTK,
1
Я просто пробовал это в IE 11, и вы фактически можете открыть локальный файл, не загружая его (как при открытии уже существующего пути к файлу). Этого еще нет в хроме.
убедитесь, что права доступа к вашей папке установлены так, что разрешен список каталогов, а затем просто укажите привязку к этой папке с помощью chmod 701 (хотя это может быть рискованно), например
<ahref="./downloads/folder_i_want_to_display/">Go to downloads page</a>
убедитесь, что у вас нет index.html любого индексного файла в этом каталоге
Этот ответ работает. Часть "разрешенный список каталогов" очень важна. Если это не разрешено, вы можете включить его, но для каждого серверного приложения он разный.
Трэвис
3
Использование file: ///// просто не работает, если настройки безопасности установлены даже на средний уровень.
Если вы просто хотите, чтобы пользователи могли загружать / просматривать файлы *, расположенные в сети или совместно используемые, вы можете настроить виртуальный каталог в IIS. На вкладке «Свойства» убедитесь, что выбран «Общий ресурс, расположенный на другом компьютере», а «Подключиться как ...» - это учетная запись, которая может видеть сетевое расположение.
Ссылка на виртуальный каталог со своей веб-страницы (например, http: // yoursite / yourvirtualdir / ), и это откроет представление каталога в веб-браузере.
* Вы можете разрешить права на запись в виртуальный каталог, чтобы пользователи могли добавлять файлы, но не пробовали, и предполагать, что сетевые разрешения переопределяют этот параметр.
Это актуально сегодня, поскольку Chrome и более новые версии IE будут блокировать доступ к локальным ресурсам file: // с нефайловых веб-страниц. Кроме того, его можно настроить для работы в IIS Express, хотя его необходимо добавить и запустить вручную.
Schmuli
2
Не работает в Chrome, но другие ответы предлагают решение через плагин:
Вы также можете скопировать адрес ссылки и вставить его в новое окно, чтобы обойти безопасность. Это работает в Chrome и Firefox, но вам, возможно, придется добавить косые черты в Firefox.
Немного поздно на вечеринку, но я должен был решить это для себя недавно, хотя и немного по-другому, это все равно может помочь кому-то в обстоятельствах, похожих на мои.
Я использую xampp на ноутбуке для запуска чисто локального веб-приложения в Windows. (Я знаю очень специфическую среду). В этом случае я использую html-ссылку на файл php и запускаю:
Многообещающе, но когда я запускаю это в Firefox, вкладка зависает. (Кажется, что сеанс перемешивается или что-то в этом роде, потому что я могу получить доступ к другим сайтам, но этот сайт кажется
Стивен Р.
Я только что протестировал его в Firefox, у меня он работает, но я не могу указать папку, в которой открывать, он открывается только в корневом каталоге php-файла.
Лукас Таулеалеа
0
Надеюсь, это когда-нибудь поможет кому-то. Я делал небольшой POC и наткнулся на это. Кнопка, onClick отображает содержимое папки. Ниже HTML,
Ответы:
Вы хотите открыть общую папку в проводнике Windows? Вам нужно использовать
file:
ссылку, но есть предостережения:file://server/share/folder/
).file://///server/share/folder
) и пользователь отключил ограничение безопасности дляfile:
ссылок на странице, обслуживаемой через HTTP . К счастью, IE также принимает искаженную форму ссылки.file:
ссылку на странице, обслуживаемой через HTTP.источник
URL-адрес
file://[servername]/[sharename]
должен открывать окно проводника для общей папки в сети.источник
убедитесь, что права доступа к вашей папке установлены так, что разрешен список каталогов, а затем просто укажите привязку к этой папке с помощью chmod 701 (хотя это может быть рискованно), например
убедитесь, что у вас нет index.html любого индексного файла в этом каталоге
источник
Использование file: ///// просто не работает, если настройки безопасности установлены даже на средний уровень.
Если вы просто хотите, чтобы пользователи могли загружать / просматривать файлы *, расположенные в сети или совместно используемые, вы можете настроить виртуальный каталог в IIS. На вкладке «Свойства» убедитесь, что выбран «Общий ресурс, расположенный на другом компьютере», а «Подключиться как ...» - это учетная запись, которая может видеть сетевое расположение.
Ссылка на виртуальный каталог со своей веб-страницы (например, http: // yoursite / yourvirtualdir / ), и это откроет представление каталога в веб-браузере.
* Вы можете разрешить права на запись в виртуальный каталог, чтобы пользователи могли добавлять файлы, но не пробовали, и предполагать, что сетевые разрешения переопределяют этот параметр.
источник
Не работает в Chrome, но другие ответы предлагают решение через плагин:
Может ли Google Chrome открывать локальные ссылки?
источник
Вы также можете скопировать адрес ссылки и вставить его в новое окно, чтобы обойти безопасность. Это работает в Chrome и Firefox, но вам, возможно, придется добавить косые черты в Firefox.
источник
Немного поздно на вечеринку, но я должен был решить это для себя недавно, хотя и немного по-другому, это все равно может помочь кому-то в обстоятельствах, похожих на мои.
Я использую xampp на ноутбуке для запуска чисто локального веб-приложения в Windows. (Я знаю очень специфическую среду). В этом случае я использую html-ссылку на файл php и запускаю:
Откроется окно локального проводника Windows.
источник
Надеюсь, это когда-нибудь поможет кому-то. Я делал небольшой POC и наткнулся на это. Кнопка, onClick отображает содержимое папки. Ниже HTML,
источник