Вам нужно использовать file:///
протокол (да, это три слеша), если вы хотите ссылаться на локальные файлы.
<a href="file:///C:\Programs\sort.mw">Link 1</a>
<a href="file:///C:\Videos\lecture.mp4">Link 2</a>
Они никогда не откроют файл в ваших локальных приложениях автоматически. Это из соображений безопасности, о которых я расскажу в последнем разделе. Если он откроется, он откроется только в браузере. Если ваш браузер может отобразить файл, он это сделает, в противном случае он, вероятно, спросит вас, хотите ли вы загрузить файл.
Современные версии многих браузеров (например, Firefox и Chrome) откажутся от перехода с протокола http на файловый протокол для предотвращения злонамеренного поведения. Вам нужно будет открыть свою веб-страницу локально, используя файловый протокол, если вы хотите сделать это вообще.
Почему он застревает без file:///
?
Первая часть URL - это протокол. Протокол состоит из нескольких букв, затем двоеточия и двух слешей. HTTP://
и FTP://
являются действительными протоколами; C:/
нет, и я уверен, что он даже не похож на него.
C:/
также не является действительным веб-адресом. Браузер может предположить, что он http://c/
задан с пустым портом, но это не удастся.
Ваш браузер может не предполагать, что он ссылается на локальный файл. У него мало оснований для такого предположения, потому что публичные сайты обычно не пытаются ссылаться на локальные файлы людей.
Поэтому, если вы хотите получить доступ к локальным файлам: скажите ему использовать протокол файла.
Почему три слеша?
Потому что это часть схемы File URI . У вас есть возможность указать хост после первых двух слэшей. Если вы пропустите указание хоста, он просто будет предполагать, что вы ссылаетесь на файл на вашем собственном ПК. Это означает file:///C:/etc
, что ярлык для file://localhost/C:/etc
.
Эти файлы будут по-прежнему открываться в вашем браузере, и это хорошо
Ваш браузер будет реагировать на эти файлы так же, как они реагируют на один и тот же файл в любом месте в Интернете. Эти файлы не будут открываться в вашем стандартном обработчике файлов (например, MS Word или VLC Media Player), и вы не сможете ничего сделать, например, попросить проводника открыть файл.
Это очень хорошая вещь для вашей безопасности.
Сайты в вашем браузере не могут очень хорошо взаимодействовать с вашей операционной системой. Если хороший сайт может сказать вашей машине открыть lecture.mp4 в VLC.exe , вредоносный сайт может сказать ему, чтобы открыть virus.bat в CMD.exe . Или он может просто сказать вашей машине запустить несколько файлов Uninstall.exe или открыть File Explorer миллион раз.
Это может быть неудобно для вас, но HTML и безопасность браузера не были действительно разработаны для того, что вы делаете. Если вы хотите открыть файл lecture.mp4 в VLC.exe, попробуйте написать приложение для настольного компьютера.
Not allowed to load local resource
ошибку)Если вы используете IIS на своем ПК, вы можете добавить каталог, к которому вы пытаетесь обратиться, как виртуальный каталог. Для этого щелкните правой кнопкой мыши свой сайт в МКС и нажмите «Добавить виртуальный каталог». Назовите виртуальную папку. Укажите виртуальную папку на папку на локальном ПК. Вы также должны предоставить учетные данные, которые имеют права доступа к определенной папке, например. HOSTNAME \ имя пользователя и пароль. После этого вы можете получить доступ к файлу в виртуальной папке, как и любой другой файл на вашем сайте.
http://sitename.com/virtual_folder_name/filename.fileextension
Кстати, это также работает с Chrome, который в противном случае не принимает файл протокола файла: //
Надеюсь, это поможет кому-то :)
источник
Джанки в лучшем случае
и затем щелкните правой кнопкой мыши, выберите опцию «копировать местоположение», а затем вставьте в URL.
источник
вернуться к 2017 году:
используйте URL.createObjectURL (файл), чтобы создать локальную ссылку на файловую систему, выбранную пользователем;
не забудьте освободить память с помощью URL.revokeObjectURL ()
источник
У меня есть способ и работа, как это:
источник