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.
Not allowed to load local resource
błąd)Jeśli korzystasz z usług IIS na swoim komputerze, możesz dodać katalog, do którego próbujesz się dostać, jako katalog wirtualny. Aby to zrobić, kliknij prawym przyciskiem myszy swoją witrynę w ISS i naciśnij „Dodaj katalog wirtualny”. Nazwij folder wirtualny. Wskaż folder wirtualny na lokalizację folderu na lokalnym komputerze. Musisz również podać poświadczenia, które mają uprawnienia dostępu do określonego folderu, np. NAZWA HOSTA \ nazwa użytkownika i hasło. Następnie możesz uzyskać dostęp do pliku w folderze wirtualnym, tak jak do każdego innego pliku w witrynie.
http://sitename.com/virtual_folder_name/filename.fileextension
Nawiasem mówiąc, działa to również z Chrome, który w przeciwnym razie nie akceptuje pliku protokołu pliku: //
Mam nadzieję, że to komuś pomoże :)
źródło
W najlepszym razie Janky
a następnie kliknij prawym przyciskiem myszy, wybierz opcję „kopiuj lokalizację”, a następnie wklej do adresu URL.
źródło
powrót do 2017 roku:
użyj adresu URL.createObjectURL (plik), aby utworzyć lokalne łącze do systemu plików wybranego przez użytkownika;
nie zapomnij zwolnić pamięci za pomocą URL.revokeObjectURL ()
źródło
Mam sposób i działa tak:
źródło