Musisz użyć file:///
protokołu (tak, to trzy ukośniki), jeśli chcesz połączyć się z plikami lokalnymi.
<a href="file:///C:\Programs\sort.mw">Link 1</a>
<a href="file:///C:\Videos\lecture.mp4">Link 2</a>
Nigdy nie otworzą one automatycznie pliku w aplikacjach lokalnych. To ze względów bezpieczeństwa, które omówię w ostatniej sekcji. Jeśli się otworzy, otworzy się tylko w przeglądarce. Jeśli Twoja przeglądarka może wyświetlić plik, to zrobi, w przeciwnym razie prawdopodobnie zapyta Cię, czy chcesz pobrać plik.
Nowoczesne wersje wielu przeglądarek (np. Firefox i Chrome) odmawiają przechodzenia z protokołu http na protokół pliku, aby zapobiec złośliwemu zachowaniu. Jeśli chcesz w ogóle to zrobić, musisz otworzyć swoją stronę internetową lokalnie, korzystając z protokołu plików.
Dlaczego utknęła bez file:///
?
Pierwsza część adresu URL to protokół. Protokół składa się z kilku liter, następnie dwukropka i dwóch ukośników. HTTP://
i FTP://
są ważnymi protokołami; C:/
nie jest i jestem pewien, że nawet właściwie nie przypomina jednego.
C:/
również nie jest prawidłowym adresem internetowym. Przeglądarka może założyć, że ma mieć http://c/
określony pusty port, ale to się nie powiedzie.
Twoja przeglądarka może nie zakładać, że odwołuje się do pliku lokalnego. Nie ma powodu, aby przyjmować takie założenie, ponieważ witryny publiczne zwykle nie próbują tworzyć linków do lokalnych plików ludzi.
Więc jeśli chcesz uzyskać dostęp do plików lokalnych: powiedz mu, aby używał protokołu plików.
Dlaczego trzy cięcia?
Ponieważ jest to część schematu identyfikatora URI pliku . Masz możliwość określenia hosta po pierwszych dwóch ukośnikach. Jeśli pominiesz określanie hosta, po prostu założysz, że odnosisz się do pliku na własnym komputerze. Oznacza to, że file:///C:/etc
jest to skrót do file://localhost/C:/etc
.
Te pliki będą nadal otwierane w Twojej przeglądarce i to dobrze
Twoja przeglądarka zareaguje na te pliki w taki sam sposób, w jaki zareagowałaby na ten sam plik w dowolnym miejscu w Internecie. Te pliki nie otworzą się w twoim domyślnym programie obsługi plików (np. MS Word lub VLC Media Player) i nie będziesz mógł zrobić nic takiego, jak poproszenie Eksploratora plików o otwarcie lokalizacji pliku.
To bardzo dobra rzecz dla twojego bezpieczeństwa.
Witryny w przeglądarce nie mogą dobrze współdziałać z systemem operacyjnym. Jeśli dobra witryna może nakazać komputerowi otwarcie pliku lecture.mp4 w pliku VLC.exe , złośliwa witryna może nakazać jej otwarcie pliku virus.bat w CMD.exe . Lub może po prostu powiedzieć twojemu komputerowi, aby uruchomił kilka plików Uninstall.exe lub otworzył Eksplorator plików milion razy.
Może to nie być dla Ciebie wygodne, ale zabezpieczenia HTML i przeglądarki nie zostały tak naprawdę zaprojektowane do tego, co robisz. Jeśli chcesz mieć możliwość otwierania lecture.mp4 w VLC.exe, rozważ zamiast tego napisanie aplikacji komputerowej.