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.
Not allowed to load local resource
erreur)Si vous exécutez IIS sur votre PC, vous pouvez ajouter le répertoire que vous essayez d'atteindre en tant que répertoire virtuel. Pour ce faire, faites un clic droit sur votre site dans ISS et appuyez sur "Ajouter un répertoire virtuel". Nommez le dossier virtuel. Pointez 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 dans le dossier virtuel comme n'importe quel autre fichier sur votre site.
http://sitename.com/virtual_folder_name/filename.fileextension
À propos, cela fonctionne également avec Chrome qui n'accepte pas le fichier de protocole de fichier: //
J'espère que cela aide quelqu'un :)
la source
Janky au mieux
puis faites un clic droit, sélectionnez l'option "copier l'emplacement", puis collez-la dans l'URL.
la source
retour en 2017:
utilisez URL.createObjectURL (fichier) pour créer un lien local vers le système de fichiers sélectionné par l'utilisateur;
n'oubliez pas de libérer de la mémoire en utilisant URL.revokeObjectURL ()
la source
J'ai un moyen et travailler comme ça:
la source