- Как открыть локальные файлы в браузере в Windows
- Преамбула — вопросы безопасности
- Google Chrome
- Firefox
- Как создать ссылку на локальный файл на локально запущенной веб-странице?
- 5 ответов:
- почему он застревает без file:/// ?
- почему в три раза?
- эти файлы по-прежнему открываются в браузере и это хорошо
- Как создать ссылку на локальный файл на локальной странице?
- Почему он застревает без file:/// ?
- Почему три слэша?
- Эти файлы будут по-прежнему открываться в вашем браузере, и это хорошо
- How can I create a link to a local file on a locally-run web page?
- 5 Answers 5
- You cannot cross from http(s) to the file protocol
- Why does it get stuck without file:/// ?
- Why three slashes?
- These files will still open in your browser and that is good
- How to specify a local file within html using the file: scheme?
- 5 Answers 5
Как открыть локальные файлы в браузере в Windows
Время от времени вам может понадобиться работать между вашим браузером и другим файлом на компьютере. Это может быть видеопрезентация, где вам нужно будет открывать разные файлы на вашем компьютере по ходу работы.
Этот и многие другие сценарии можно легко решить, открыв файлы в браузере. Для этого в более старых версиях Windows требовались серьезные технические изменения. С Windows 10 это не так сложно. В зависимости от браузера открытие локальных файлов либо поддерживается изначально, либо требует небольшого изменения настроек на вашем компьютере.
Преамбула — вопросы безопасности
Google Chrome
Использовать Google Chrome для доступа к локальным файлам так же просто, как одновременно нажимать Ctrl+ O.
Откроется этот интерфейс, позволяющий перейти к нужному файлу или папке.
Есть несколько типов файлов, которые можно открывать с помощью Chrome. К ним относятся файлы pdf, mp3, некоторые видеофайлы и большинство файлов документов. Для открытия файлов такого типа не требуется специальное приложение.
Firefox
В Firefox вы можете открыть локальный файл, открыв новую вкладку и выбрав опцию «Открыть файл». Это откроет файловый менеджер, который можно использовать для навигации по различным папкам и открытия файлов, поддерживаемых Firefox.
Этот процесс можно сократить, введя file:/// в адресную строку. Это приведет к тому же результату. Убедитесь, что после двоеточия стоит ровно три слэша.
Проблема с этим методом заключается в том, что он может сделать ваш компьютер уязвимым для атак со стороны злоумышленника в вашей сети, например внутренней сети офиса. Это также метод случайных ошибок, поскольку Edge время от времени выпускает обновления, которые закрывают такие лазейки.
Если точный адрес файла, который вы хотите открыть, неизвестен, вы можете использовать Edge, вставив полный адрес в строку поиска. Адрес должен вести к файлу, который может быть открыт Edge, например к файлу pdf или музыкальному файлу.
Как создать ссылку на локальный файл на локально запущенной веб-странице?
Я хотел бы иметь html-файл, который организует определенные файлы, разбросанные по всему моему жесткому диску. Например, у меня есть два файла, на которые я бы ссылался:
проблема в том, что я хотел бы, чтобы ссылки функционировали как ярлык для файла. Я пробовал следующее:
. но первая ссылка ничего не делает, а вторая ссылка открывает файл в Chrome, а не VLC.
мои вопросы являются:
есть ли способ настроить мой HTML для обработки ссылок в качестве ярлыков для файлов?
Если нет способа настроить HTML, есть ли другие способы аккуратно связать файлы, разбросанные по всему жесткому диску?
Мой компьютер работает под управлением Windows 7 и мой веб-браузер Chrome.
5 ответов:
вы должны использовать file:/// протокол (да, это три косые черты), если вы хотите связать с локальными файлами.
они никогда не откроют файл в ваших локальных приложениях автоматически. это из соображений безопасности, и я доберусь до этого в последнем разделе. Если он откроется, он будет открыт только в браузере. Если это ваш браузер может отображать файл, он будет. Если он не может, он, вероятно, спросит вас, Хотите ли вы его загрузить.
некоторые браузеры, такие как современные версии Chrome, даже откажутся переходить из протокола http в протокол file, поэтому вам лучше убедиться, что вы открываете это локально, используя протокол file, если вы хотите сделать это вообще.
почему он застревает без file:/// ?
первая часть URL — это протокол. Протокол — это несколько букв, затем двоеточие и две косые черты. HTTP:// и FTP:// действительны протоколов; C:/ нет, и я уверен, что это даже толком не похож на него.
C:/ также не является допустимым веб-адресом. Браузер может предположить, что это должно быть http://c/ С указанным пустым портом, но это не сработает.
Ваш браузер может не предполагать, что он ссылается на локальный файл. У него мало оснований для такого предположения, потому что публичные сайты обычно не пытаются ссылаться на локальные файлы людей.
Итак, если вы хотите получить доступ к локальным файлам: скажите ему использовать файл протокол.
почему в три раза?
потому что это часть схема URI файла. У вас есть возможность указать хост после первых двух косых черт. Если вы пропустите указание хоста, он просто предположит, что вы ссылаетесь на файл на своем собственном ПК. Другими словами: file:///C:/etc ярлык для file://localhost/C:/etc .
эти файлы по-прежнему открываются в браузере и это хорошо
Ваш браузер будет реагировать на эти файлы точно так же они отвечают на один и тот же файл в любом месте в интернете. Эти файлы не будет откройте в своем обработчике файлов по умолчанию (например, MS Word или VLC Media Player), и вы не будет можно сделать что-нибудь вроде ask File Explorer, чтобы открыть местоположение файла.
это очень хорошая вещь для вашей безопасности.
сайты в браузере не может взаимодействовать с вашей операционной системой. Если бы хороший сайт мог сказать lecture. mp4 to open in VLC.exe, вредоносный сайт может сказать ему, чтобы открыть .летучая мышь in CMD.exe. Или он может просто сказать вашему компьютеру, чтобы запустить несколько удалить.exe файлы, или открыть файловый проводник миллион раз.
это может быть неудобно для вас, но HTML и безопасность браузера на самом деле не предназначены для того, что вы делаете. Если вы хотите иметь возможность открытьlecture. mp4 in VLC.exe, рассмотрите возможность написания настольного приложения вместо этого.
Если вы используете IIS на вашем компьютере, вы можете добавить каталог, который вы пытаетесь достичь в качестве виртуального каталога. Для этого вы щелкните правой кнопкой мыши на своем сайте в ISS и нажмите «Добавить виртуальный каталог». Назовите виртуальную папку. Наведите виртуальную папку в папку, расположенную на локальном компьютере. Вы также должны предоставить учетные данные, которые имеют привилегии для доступа к определенной папке, например. Имя хоста\имя пользователя и пароль. После этого вы можете получить доступ к файлу в виртуальной папке, как и к любому другому файлу ваш сайт.
кстати, это также работает с Chrome, который в противном случае не принимает файл-протокол file://
надеюсь, это кому-то поможет 🙂
а затем щелкните правой кнопкой мыши, выберите опцию «копировать местоположение», а затем вставьте в url.
У меня есть способ и работать так:
Как создать ссылку на локальный файл на локальной странице?
Я хотел бы иметь html файл, который упорядочивает определенные файлы, разбросанные по всему моему жесткому диску. Например, у меня есть два файла, на которые я ссылался бы:
Проблема в том, что я хотел бы, чтобы ссылки работали как ярлык файла. Я пробовал следующее:
… но первая ссылка ничего не делает, а вторая ссылка открывает файл в Chrome, а не в VLC.
Есть ли способ настроить мой HTML, чтобы рассматривать ссылки как ярлыки для файлов?
Если нет способа настроить HTML, есть ли другие способы аккуратной ссылки на файлы, разбросанные по всему жесткому диску?
Мой компьютер работает под управлением Windows 7, а мой веб-браузер – Chrome.
Вам нужно использовать протокол file:/// (да, это три слэша), если вы хотите установить связь с локальными файлами.
Они никогда не будут открывать файл в локальных приложениях автоматически. Это по соображениям безопасности, и я доберусь до этого в последнем разделе. Если он откроется, он будет открыт только в браузере. Если это ваш браузер может отобразить файл, он будет. Если он не может, он, вероятно, спросит вас, хотите ли вы загрузить его.
Некоторые браузеры, такие как современные версии 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, подумайте над тем, чтобы писать настольное приложение.
Если вы используете IIS на своем ПК, вы можете добавить каталог, который вы пытаетесь найти в качестве виртуального каталога.
Для этого вы щелкните правой кнопкой мыши на своем сайте в ISS и нажмите “Добавить виртуальный каталог”.
Назовите виртуальную папку. Укажите виртуальную папку в папку на локальном компьютере.
Вы также должны предоставить учетные данные, которые имеют привилегии для доступа к определенной папке, например. HOSTNAME\имя пользователя и пароль.
После этого вы можете получить доступ к файлу в виртуальной папке как к любому другому файлу на вашем сайте.
Кстати, это также работает с Chrome, который в противном случае не принимает файл файлового протокола://
Надеюсь, это поможет кому-то:)
Янки в лучшем случае
а затем щелкните правой кнопкой мыши, выберите опцию “Копировать местоположение”, а затем вставьте в URL-адрес.
У меня есть способ и работаю следующим образом:
How can I create a link to a local file on a locally-run web page?
I’d like to have an html file that organizes certain files scattered throughout my hard drive. For example, I have two files that I would link to:
The problem is that I’d like the links to function as a shortcut to the file. I’ve tried the following:
. but the first link does nothing and the second link opens the file in Chrome, not VLC.
My questions are:
Is there a way to adjust my HTML to treat the links as shortcuts to the files?
If there isn’t a way to adjust the HTML, are there any other ways to neatly link to files scattered throughout the hard drive?
My computer runs Windows 7 and my web browser is Chrome.
5 Answers 5
You need to use the file:/// protocol (yes, that’s three slashes) if you want to link to local files.
These will never open the file in your local applications automatically. That’s for security reasons which I’ll cover in the last section. If it opens, it will only ever open in the browser. If your browser can display the file, it will, otherwise it will probably ask you if you want to download the file.
You cannot cross from http(s) to the file protocol
Modern versions of many browsers (e.g. Firefox and Chrome) will refuse to cross from the http(s) protocol to the file protocol to prevent malicious behaviour.
This means a webpage hosted on a website somewhere will never be able to link to files on your hard drive. You’ll need to open your webpage locally using the file protocol if you want to do this stuff at all.
Why does it get stuck without file:/// ?
The first part of a URL is the protocol. A protocol is a few letters, then a colon and two slashes. HTTP:// and FTP:// are valid protocols; C:/ isn’t and I’m pretty sure it doesn’t even properly resemble one.
C:/ also isn’t a valid web address. The browser could assume it’s meant to be http://c/ with a blank port specified, but that’s going to fail.
Your browser may not assume it’s referring to a local file. It has little reason to make that assumption because webpages generally don’t try to link to peoples’ local files.
So if you want to access local files: tell it to use the file protocol.
Why three slashes?
Because it’s part of the File URI scheme. You have the option of specifying a host after the first two slashes. If you skip specifying a host it will just assume you’re referring to a file on your own PC. This means file:///C:/etc is a shortcut for file://localhost/C:/etc .
These files will still open in your browser and that is good
Your browser will respond to these files the same way they’d respond to the same file anywhere on the internet. These files will not open in your default file handler (e.g. MS Word or VLC Media Player), and you will not be able to do anything like ask File Explorer to open the file’s location.
This is an extremely good thing for your security.
How to specify a local file within html using the file: scheme?
I’m loading a html file hosted on the OS X built in Apache server, within that file I am linking to another html file in the same directory as follows:
This works. However (for reasons too lengthy to go into) I am experimenting using the file: scheme instead, however I cannot get anything to work. Here is how I am re-writing the above line using file:
(192.168.1.57 is my current IP address)
Changing it to the following does also not work:
But the file cannot be found, how should it be specified using the file: scheme?
5 Answers 5
The file: URL scheme refers to a file on the client machine. There is no hostname in the file: scheme; you just provide the path of the file. So, the file on your local machine would be file:///
User/2ndFile.html . Notice the three slashes; the hostname part of the URL is empty, so the slash at the beginning of the path immediately follows the double slash at the beginning of the URL. You will also need to expand the user’s path;
does no expand in a file: URL. So you would need file:///home/User/2ndFile.html (on most Unixes), file:///Users/User/2ndFile.html (on Mac OS X), or file:///C:/Users/User/2ndFile.html (on Windows).
Many browsers, for security reasons, do not allow linking from a file that is loaded from a server to a local file. So, you may not be able to do this from a page loaded via HTTP; you may only be able to link to file: URLs from other local pages.
The ‘file’ protocol is not a network protocol. Therefore file://192.168.1.57/
User/2ndFile.html simply does not make much sense.
Question is how you load the first file. Is that really done using a web server? Does not really sound like. If it is, then why not use the same protocol, most likely http? You cannot expect to simply switch the protocol and use two different protocols the same way.
I suspect the first file is really loaded using the apache server at all, but simply by opening the file? href=»2ndFile.html» simply works because it uses a «relative url». This makes the browser use the same protocol and path as where he got the first (current) file from.
the «file://» url protocol can only be used to locate files in the file system of the local machine. since this html code is interpreted by a browser, the «local machine» is the machine that is running the browser.
if you are getting file not found errors, i suspect it is because the file is not found. however, it could also be a security limitation of the browser. some browsers will not let you reference a filesystem file from a non-filesystem html page. you could try using the file path from the command line on the machine running the browser to confirm that this is a browser limitation and not a legitimate missing file.
I had similar issue before and in my case the file was in another machine so i have mapped network drive z to the folder location where my file is then i created a context in tomcat so in my web project i could access the HTML file via context
For apache look up SymLink or you can solve via the OS with Symbolic Links or on linux set up a library link/etc
My answer is one method specifically to windows 10.
So my method involves mapping a network drive to U:/ (e.g. I use G:/ for Google Drive)
open cmd and type hostname (example result: LAPTOP-G666P000 , you could use your ip instead, but using a static hostname for identifying yourself makes more sense if your network stops)
Press Windows_key + E > right click ‘This PC’ > press N (It’s Map Network drive, NOT add a network location)
If you are right clicking the shortcut on the desktop you need to press N then enter
Fill out U: or G: or Z: or whatever you want Example Address: \\LAPTOP-G666P000\c$\Users\username\
related: You can also use this method for FTPs, and setup multiple drives for different relative paths on that same network.