Открываем локальные файлы (file://) с помощью Chrome
У меня есть страница с некоторыми формами. Все ссылки отлично работают в IE. Они открываются в новой вкладке, когда пользователь нажимает гиперссылку; однако я понял, что при использовании Chrome ссылка не открывается. Я продолжаю нажимать, но ничего не открывается. Единственный способ открыть файл - это скопировать гиперссылку, открыть новую вкладку в Chrome, вставить и перейти.
<a href="FILE:\\outsideserver\files\shared\form1.pdf" target="_blank">Form1</a>
Это то, что делает браузер? Потому что я попробовал это с FireFox и тоже не работает? Есть ли способ обойти? без установки чего-либо в браузере? Потому что мой пользователь любит Chrome. Спасибо заранее за ответы.
5 ответов
Вы не можете получить доступ к файлам за пределами вашего сервера или "SandBox", в песочницу входят файлы, которые пользователь отправляет в браузер или на ваш сервер.
Если бы доступ из браузера к файлам ПК с веб-страниц был возможен, это было бы проблемой безопасности.
Ответ в том, что вы не можете с вашим подходом, и что более важно, вы не должны. Поведение Chrome на самом деле является правильным и защищает вас от доступа злонамеренных пользователей и / или сценариев к вашим локальным ресурсам.
FILE
Протокол будет обращаться к локальной или определенной сети с именованными ресурсами, которые не будут доступны удаленному пользователю, который посещает ту же страницу. Другими словами, вы можете иметь outsideserver
отображается как сетевой ресурс / диск, но кто-то другой не будет (это не относится к IP-адресам)
Вот что вы можете сделать:
- Переместите код в сценарий на стороне сервера (php, asp и т. Д.) И верните файл обратно. Нашел быстрый пример здесь на SO. Я не проверял это все же. Потоковая передача большого файла с использованием PHP
- Установите веб-сервер на
outsideserver
и сопоставить новый сайт сshared
папка. Затем вы можете ссылаться на него через http ( http://outsideserver.com/form1.pdf)
Используйте расширение ниже для хрома. Это будет работать.
Включить ссылки на локальные файлы
Ниже оба варианта работают и тестируются.
<a href="\\server\folder\">Link 2</a>
<a href="file:///C:/folder/test.txt">Link 3</a>
Я знаю, что это довольно старое решение, но проблема остается и в 2023 году — невозможность просмотра ссылок file:/// в браузерах без ручного взаимодействия или взаимодействия с пользователем. Мой вариант использования может быть редким, но вот обходной путь для моего бедняка, если кто-то захочет его использовать:https://gist.github.com/cemerson/cb2da58243837b41b4aaa4541a2380f3(Код быстрый и неряшливый, поэтому не стесняйтесь его чистить)
По сути, это просто простая HTML-страница, которая принимает значение строки запроса пути к целевому файлу и дает пользователю возможность получить URL-адрес пути и/или файл:/// для вставки/просмотра себя в браузере. Возможность получить работающий URL-адрес HTTPS, указывающий на файл на локальном/общем диске, была моей основной потребностью/целью, и на данный момент это работает.
Щелкните правой кнопкой мыши и выберите "открыть как новую вкладку".