Jeg vil gjerne ha en html-fil som organiserer visse filer spredt over hele harddisken min. For eksempel har jeg to filer som jeg vil lenke til:
C:\Videoer\forelesning.mp4
Problemet er at jeg vil at lenkene skal fungere som en snarvei til filen. Jeg har prøvd følgende:
<a href="C:\Programs\sort.mw">Link 1</a>
<a href="C:\Videos\lecture.mp4">Link 2</a>
... men den første lenken gjør ingenting, og den andre lenken åpner filen i Chrome, ikke VLC.
Spørsmålene mine er:
Finnes det en måte å justere HTML-koden min slik at lenkene behandles som snarveier til filene?
Hvis det ikke finnes en måte å justere HTML på, finnes det noen andre måter å lenke til filer som er spredt over hele harddisken?
Datamaskinen min kjører Windows 7 og nettleseren min er Chrome.
Du må bruke file:///
-protokollen (ja, det er tre skråstreker) hvis du vil lenke til lokale filer.
<a href="file:///C:\Programs\sort.mw">Link 1</a>
<a href="file:///C:\Videos\lecture.mp4">Link 2</a>
Disse vil aldri åpne filen i dine lokale applikasjoner automatisk. Det er av sikkerhetsgrunner som jeg vil dekke i den siste delen. Hvis den åpnes, vil den bare åpnes i nettleseren. Hvis nettleseren din kan vise filen, vil den gjøre det, ellers vil den sannsynligvis spørre deg om du vil laste ned filen.
Noen nettlesere, som moderne versjoner av Chrome, vil til og med nekte å krysse fra http-protokollen til filprotokollen, så du bør sørge for at du åpner dette lokalt ved hjelp av filprotokollen hvis du vil gjøre dette i det hele tatt.
file:///
?Den første delen av en URL er protokollen. En protokoll er noen få bokstaver, deretter et kolon og to skråstreker. HTTP://og
FTP://er gyldige protokoller;
C:/` er det ikke, og jeg er ganske sikker på at det ikke engang ligner på en.
C:/er heller ikke en gyldig nettadresse. Nettleseren kan anta at det er ment å være
http://c/` med en tom port spesifisert, men det kommer til å mislykkes.
Nettleseren din antar kanskje ikke at den refererer til en lokal fil. Den har liten grunn til å anta det fordi offentlige nettsteder vanligvis ikke forsøker å lenke til folks lokale filer.
Så hvis du vil ha tilgang til lokale filer: be den om å bruke filprotokollen.
Fordi det er en del av File URI scheme. Du har muligheten til å spesifisere en vert etter de to første skråstrekene. Hvis du hopper over å spesifisere en vert, vil det bare anta at du refererer til en fil på din egen PC. Dette betyr at file:///C:/etc
er en snarvei til file://localhost/C:/etc
.
Nettleseren din vil reagere på disse filene på samme måte som den ville reagert på den samme filen hvor som helst på Internett. Disse filene vil ikke åpnes i standard filbehandler (f.eks. MS Word eller VLC Media Player), og du vil ikke kunne gjøre noe som å be File Explorer om å åpne filens plassering.
**Dette er en ekstremt god ting for sikkerheten din.
Nettsteder i nettleseren din kan ikke samhandle med operativsystemet ditt særlig godt. Hvis et godt nettsted kan be maskinen din om å åpne lecture.mp4 i VLC.exe, kan et ondsinnet nettsted be den om å åpne virus.bat i CMD.exe. Eller det kan bare be maskinen din om å kjøre noen Uninstall.exe-filer eller åpne File Explorer en million ganger.
Dette er kanskje ikke praktisk for deg, men HTML og nettlesersikkerhet var egentlig ikke designet for det du gjør. Hvis du vil kunne åpne lecture.mp4 i VLC.exe, bør du vurdere å skrive et skrivebordsprogram i stedet.
Hvis du kjører IIS på PC-en din, kan du legge til katalogen du prøver å nå, som en virtuell katalog. Dette gjør du ved å høyreklikke på nettstedet ditt i ISS og trykke på "Legg til virtuell katalog". Gi den virtuelle mappen et navn. Pek den virtuelle mappen til mappeplasseringen på din lokale PC. Du må også oppgi påloggingsinformasjon som gir tilgang til den spesifikke mappen, f.eks. vertsnavn\brukernavn og passord. Deretter kan du få tilgang til filen i den virtuelle mappen som en hvilken som helst annen fil på nettstedet ditt.
http://sitename.com/virtual_folder_name/filename.fileextension
Dette fungerer forresten også med Chrome, som ellers ikke godtar filprotokollfilen://.
Håper dette hjelper noen :)