J’aimerais avoir un fichier html qui organise certains fichiers éparpillés sur mon disque dur. Par exemple, j'ai deux fichiers vers lesquels je voudrais créer un lien :
C:\Videos\lecture.mp4
Le problème est que je voudrais que les liens fonctionnent comme un raccourci vers le fichier. J'ai essayé ce qui suit :
<a href="C:\Programs\sort.mw">Link 1</a>
<a href="C:\Videos\lecture.mp4">Link 2</a>
... mais le premier lien ne fait rien et le deuxième lien ouvre le fichier dans Chrome, pas dans VLC.
Mes questions sont les suivantes :
Y a-t-il un moyen d'ajuster mon HTML pour traiter les liens comme des raccourcis vers les fichiers ?
S’il n’y a pas moyen d’ajuster le code HTML, existe-t-il d’autres moyens de créer des liens vers des fichiers éparpillés sur le disque dur ?
Mon ordinateur fonctionne sous Windows 7 et mon navigateur Web est Chrome.
Vous devez utiliser le protocole 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>
**Ces liens n'ouvrent jamais automatiquement le fichier dans vos applications locales, et ce 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.
Certains navigateurs, comme les versions modernes de Chrome, refusent même de passer du protocole http au protocole de fichier. Vous devez donc vous assurer d’ouvrir le fichier localement en utilisant le protocole de fichier si vous voulez faire ce genre de choses.
file:///
?[La première partie d'une URL] (http://en.wikipedia.org/wiki/Uniform_resource_locator#Syntax) 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:/
ne l'est pas et je suis presque sûr qu'il n'y ressemble même pas.
De même, "C:/" n'est pas une adresse web valide. Le navigateur pourrait supposer qu'il s'agit de http://c/
avec un port vide spécifié, mais cela ne fonctionnera pas.
Le navigateur ne peut pas supposer qu'il s'agit d'une référence à un fichier local. Il a peu de raisons de le faire, car les sites publics ne tentent généralement pas de créer des liens vers les fichiers locaux des gens.
Donc, si vous voulez accéder à des fichiers locaux, dites-lui d'utiliser le protocole de fichier.
Parce que cela fait partie du [schéma URI des fichiers] (http://en.wikipedia.org/wiki/File_URI_scheme). Vous avez la possibilité de spécifier un hôte après les deux premières barres obliques. 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
.
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 pas faire quoi que ce soit 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 peut demander à votre machine d'ouvrir lecture.mp4 dans VLC.exe, un site malveillant peut lui demander d'ouvrir virus.bat dans CMD.exe. Il pourrait aussi demander à votre machine 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 le HTML et la sécurité du navigateur n'ont pas vraiment été conçus pour ce que vous faites. Si vous voulez pouvoir ouvrir lecture.mp4 dans VLC.exe, pensez plutôt à écrire une application de bureau.
Si vous utilisez IIS sur votre PC, vous pouvez ajouter le répertoire que vous essayez d'atteindre en tant que répertoire virtuel. Pour ce faire, cliquez avec le bouton droit de la souris sur votre site dans ISS et cliquez sur "Ajouter un répertoire virtuel". Nommez le dossier virtuel. Faites pointer le dossier virtuel vers l'emplacement de votre dossier sur votre PC local. Vous devez également fournir des informations d'identification qui ont des privilèges pour accéder au dossier spécifique, par exemple HOSTNAME\Nom d'utilisateur et mot de passe. Après cela, vous pouvez accéder au fichier du dossier virtuel comme à tout autre fichier sur votre site.
http://sitename.com/virtual_folder_name/filename.fileextension
À propos, cela fonctionne également avec Chrome qui, autrement, n'accepte pas le protocole de fichier file://.
J'espère que cela aidera quelqu'un :)