Vous devez utiliser le file:///
(oui, il y a trois barres obliques) si vous voulez créer un lien vers des fichiers locaux.
<a href="file:///C:\Programs\sort.mw">Link 1</a>
<a href="file:///C:\Videos\lecture.mp4">Link 2</a>
Ceux-ci n'ouvriront jamais automatiquement le fichier dans vos applications locales. C'est pour des raisons de sécurité que je vais aborder dans la dernière section. S'il s'ouvre, il ne s'ouvrira jamais que dans le navigateur. Si votre navigateur peut afficher le fichier, il le fera, sinon il vous demandera probablement si vous voulez télécharger le fichier.
Vous ne pouvez pas passer du protocole http(s) au protocole de fichier.
Les versions modernes de nombreux navigateurs (par exemple Firefox et Chrome) refusent de passer du protocole http(s) au protocole de fichier pour éviter tout comportement malveillant.
Cela signifie qu'une page web hébergée sur un site web quelque part ne sera jamais en mesure d'établir un lien avec des fichiers sur votre disque dur. Vous devrez ouvrir votre page web localement en utilisant le protocole de fichier si vous voulez faire ce genre de choses.
Pourquoi cela reste-t-il bloqué sans file:///
?
La première partie d'une URL est le protocole. Un protocole est composé de quelques lettres, puis de deux points et de deux barres obliques. HTTP://
y FTP://
sont des protocoles valides ; C:/
ne l'est pas et je suis presque sûr qu'il n'y ressemble pas vraiment.
C:/
n'est pas non plus une adresse web valide. Le navigateur pourrait supposer que c'est censé être http://c/
avec un port vide spécifié, mais ça va échouer.
Votre navigateur peut ne pas supposer qu'il s'agit d'un fichier local. Il a peu de raisons de le faire, car les pages Web n'essaient généralement pas de créer des liens vers les fichiers locaux des utilisateurs.
Donc, si vous voulez accéder à des fichiers locaux, dites-lui d'utiliser le protocole de fichier.
Pourquoi trois barres obliques ?
Parce que ça fait partie de la Schéma URI du fichier . Vous avez la possibilité de spécifier un hôte après les deux premiers slashs. Si vous ne spécifiez pas d'hôte, le système supposera que vous vous référez à un fichier sur votre propre PC. Cela signifie que file:///C:/etc
est un raccourci pour file://localhost/C:/etc
.
Ces fichiers s'ouvriront toujours dans votre navigateur, ce qui est une bonne chose.
Votre navigateur répondra à ces fichiers de la même manière que s'il s'agissait du même fichier n'importe où sur Internet. Ces fichiers ne sera pas ouvert dans votre gestionnaire de fichiers par défaut (par exemple MS Word ou VLC Media Player), et vous ne sera pas être capable de faire quelque chose comme demander à l'explorateur de fichiers d'ouvrir l'emplacement du fichier.
C'est une très bonne chose pour votre sécurité.
Les sites dans votre navigateur ne peuvent pas interagir très bien avec votre système d'exploitation. Si un bon site pouvait dire à votre machine d'ouvrir conférence.mp4 en VLC.exe un site malveillant pourrait lui demander d'ouvrir virus.bat en CMD.exe . Ou il pourrait juste dire à votre machine d'exécuter quelques Désinstaller.exe ou ouvrir l'explorateur de fichiers un million de fois.
Ce n'est peut-être pas pratique pour vous, mais le HTML et la sécurité du navigateur n'ont pas vraiment été conçus pour ce que vous faites. Si vous voulez être capable d'ouvrir conférence.mp4 en VLC.exe envisagez plutôt d'écrire une application de bureau.