Vorrei avere un file html che organizzi alcuni file sparsi nel mio hard disk. Per esempio, ho due file che vorrei collegare:
C:\Programs\sort.mw
.C:\Videos\lecture.mp4
.Il problema è che vorrei che i link funzionassero come un collegamento al file. Ho provato quanto segue:
<a href="C:\Programs\sort.mw">Link 1</a>
<a href="C:\Videos\lecture.mp4">Link 2</a>
... ma il primo link non fa nulla e il secondo link apre il file in Chrome, non in VLC.
Le mie domande sono:
C'è un modo per regolare il mio HTML per trattare i link come collegamenti ai file?
Se non c'è un modo per regolare l'HTML, ci sono altri modi per collegare ordinatamente i file sparsi nel disco rigido?
Il mio computer ha Windows 7 e il mio browser web è Chrome.
Devi usare il protocollo file:///
(sì, sono tre barre) se vuoi collegarti a file locali.
<a href="file:///C:\Programs\sort.mw">Link 1</a>
<a href="file:///C:\Videos\lecture.mp4">Link 2</a>
**Questi non apriranno mai automaticamente il file nelle tue applicazioni locali. Questo per ragioni di sicurezza che tratterò nell'ultima sezione. Se si apre, si aprirà sempre e solo nel browser. Se il tuo browser può visualizzare il file, lo farà, altrimenti probabilmente ti chiederà se vuoi scaricare il file.
Alcuni browser, come le versioni moderne di Chrome, si rifiuteranno persino di passare dal protocollo http al protocollo file, quindi è meglio assicurarsi di aprirlo localmente usando il protocollo file se si vuole fare questa roba.
file:///
?La prima parte di un URL è il protocollo. Un protocollo è composto da alcune lettere, poi due punti e due slash. HTTP://
e FTP://
sono protocolli validi; C:/
non lo è e sono abbastanza sicuro che non ne assomiglia nemmeno uno.
Anche C:/
non è un indirizzo web valido. Il browser potrebbe assumere che sia http://c/
con una porta vuota specificata, ma questo fallirà.
Il tuo browser non può assumere che si stia riferendo ad un file locale. Ha poche ragioni per fare questa supposizione perché i siti pubblici di solito non tentano di collegarsi ai file locali delle persone.
Quindi, se volete accedere ai file locali: ditegli di usare il protocollo dei file.
Perché fanno parte del File URI scheme. Hai la possibilità di specificare un host dopo i primi due slash. Se salti l'indicazione di un host, esso assumerà semplicemente che tu ti stia riferendo ad un file sul tuo PC. Questo significa che file:///C:/etc
è una scorciatoia per file://localhost/C:/etc
.
Il tuo browser risponderà a questi file nello stesso modo in cui risponderebbe allo stesso file ovunque su internet. Questi file non si apriranno nel tuo gestore di file predefinito (ad esempio MS Word o VLC Media Player), e tu non sarai in grado di fare nulla come chiedere a File Explorer di aprire il file.
**Questa è una cosa estremamente buona per la vostra sicurezza.
I siti nel vostro browser non possono interagire molto bene con il vostro sistema operativo. Se un buon sito potrebbe dire alla vostra macchina di aprire lecture.mp4 in VLC.exe, un sito maligno potrebbe dirle di aprire virus.bat in CMD.exe. O potrebbe semplicemente dire alla vostra macchina di eseguire alcuni file Uninstall.exe o aprire File Explorer un milione di volte.
Questo potrebbe non essere conveniente per voi, ma l'HTML e la sicurezza del browser non sono stati davvero progettati per quello che state facendo. Se volete essere in grado di aprire lecture.mp4 in VLC.exe considerate invece di scrivere un'applicazione desktop.
Se state eseguendo IIS sul vostro PC potete aggiungere la directory che state cercando di raggiungere come Virtual Directory. Per fare questo cliccate con il tasto destro del mouse sul vostro sito in ISS e premete "Add Virtual Directory". Dai un nome alla cartella virtuale. Puntate la cartella virtuale alla posizione della vostra cartella sul vostro PC locale. Devi anche fornire le credenziali che hanno i privilegi per accedere alla cartella specifica, ad esempio HOSTNAME\username e password. Dopo di che è possibile accedere al file nella cartella virtuale come qualsiasi altro file sul vostro sito.
http://sitename.com/virtual_folder_name/filename.fileextension
A proposito, questo funziona anche con Chrome che altrimenti non accetta il file-protocollo file://
Spero che questo aiuti qualcuno :)