Vous devez utiliser le file:///
protocole (oui, c'est trois barres obliques) si vous souhaitez 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 couvrirai dans la dernière section. S'il s'ouvre, il ne s'ouvrira que dans le navigateur. Si votre navigateur peut afficher le fichier, il le fera, sinon il vous demandera probablement si vous souhaitez télécharger le fichier.
Les versions modernes de nombreux navigateurs (par exemple Firefox et Chrome) refuseront de passer du protocole http au protocole de fichier pour éviter tout comportement malveillant. Vous devrez ouvrir votre page Web localement en utilisant le protocole de fichier si vous voulez faire cela.
Pourquoi 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://
et FTP://
sont des protocoles valides; C:/
n'est pas et je suis à peu près sûr qu'il ne ressemble même pas vraiment à un.
C:/
n'est pas non plus une adresse Web valide. Le navigateur peut supposer qu'il est censé être http://c/
avec un port vide spécifié, mais cela va échouer.
Votre navigateur peut ne pas supposer qu'il fait référence à un fichier local. Il a peu de raisons de faire cette hypothèse car les sites publics n'essaient généralement pas de créer des liens vers les fichiers locaux des personnes.
Donc, si vous voulez accéder aux fichiers locaux: dites-lui d'utiliser le protocole de fichier.
Pourquoi trois barres obliques?
Parce que cela fait partie du schéma URI de fichier . Vous avez la possibilité de spécifier un hôte après les deux premières barres obliques. Si vous ignorez la spécification d'un hôte, cela supposera simplement que vous faites référence à un fichier sur votre propre PC. Cela signifie qu'il file:///C:/etc
s'agit d'un raccourci pour file://localhost/C:/etc
.
Ces fichiers s'ouvriront toujours dans votre navigateur et c'est bien
Votre navigateur répondra à ces fichiers de la même manière qu'il répondrait au même fichier n'importe où sur Internet. Ces fichiers ne s'ouvriront pas dans votre gestionnaire de fichiers par défaut (par exemple, MS Word ou VLC Media Player), et vous ne pourrez rien faire 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 de votre navigateur ne peuvent pas très bien interagir avec votre système d'exploitation. Si un bon site pouvait dire à votre machine d'ouvrir lecture.mp4 dans VLC.exe , un site malveillant pourrait lui dire d'ouvrir virus.bat dans CMD.exe . Ou il pourrait simplement dire à votre ordinateur d'exécuter quelques fichiers Uninstall.exe ou d'ouvrir l'Explorateur de fichiers un million de fois.
Ce n'est peut-être pas pratique pour vous, mais la sécurité du HTML et du navigateur n'a pas vraiment été conçue pour ce que vous faites. Si vous souhaitez pouvoir ouvrir lecture.mp4 dans VLC.exe, envisagez plutôt d' écrire une application de bureau.