Debe usar el file:///
protocolo (sí, son tres barras) si desea vincular a archivos locales.
<a href="file:///C:\Programs\sort.mw">Link 1</a>
<a href="file:///C:\Videos\lecture.mp4">Link 2</a>
Estos nunca abrirán el archivo en sus aplicaciones locales automáticamente. Eso es por razones de seguridad que cubriré en la última sección. Si se abre, solo se abrirá en el navegador. Si su navegador puede mostrar el archivo, lo hará, de lo contrario, probablemente le preguntará si desea descargar el archivo.
Las versiones modernas de muchos navegadores (por ejemplo, Firefox y Chrome) se negarán a pasar del protocolo http al protocolo de archivo para evitar comportamientos maliciosos. Tendrá que abrir su página web localmente utilizando el protocolo de archivo si quiere hacer esto.
¿Por qué se queda atascado sin file:///
?
La primera parte de una URL es el protocolo. Un protocolo son unas pocas letras, luego dos puntos y dos barras. HTTP://
y FTP://
son protocolos válidos; C:/
no lo es y estoy bastante seguro de que ni siquiera se parece a uno.
C:/
Tampoco es una dirección web válida. El navegador podría suponer que está destinado a tener http://c/
un puerto en blanco especificado, pero eso fallará.
Es posible que su navegador no suponga que se refiere a un archivo local. Tiene pocas razones para hacer esa suposición porque los sitios públicos generalmente no intentan enlazar a los archivos locales de las personas.
Entonces, si desea acceder a archivos locales: dígale que use el protocolo de archivo.
¿Por qué tres cortes?
Porque es parte del esquema de URI de archivo . Tiene la opción de especificar un host después de las dos primeras barras. Si omite especificar un host, simplemente asumirá que se está refiriendo a un archivo en su propia PC. Esto significa que file:///C:/etc
es un atajo para file://localhost/C:/etc
.
Estos archivos aún se abrirán en su navegador y eso es bueno
Su navegador responderá a estos archivos de la misma manera que respondería al mismo archivo en cualquier lugar de Internet. Estos archivos no se abrirán en su controlador de archivos predeterminado (por ejemplo, MS Word o VLC Media Player), y no podrá hacer nada como pedirle al Explorador de archivos que abra la ubicación del archivo.
Esto es algo extremadamente bueno para su seguridad.
Los sitios en su navegador no pueden interactuar muy bien con su sistema operativo. Si un sitio bueno podría indicar a la máquina para abrir lecture.mp4 en vlc.exe , un sitio malicioso podría decir que se abra virus.bat en CMD.exe . O simplemente podría indicarle a su máquina que ejecute algunos archivos Uninstall.exe o abra File Explorer un millón de veces.
Puede que esto no sea conveniente para usted, pero la seguridad de HTML y del navegador no se diseñó realmente para lo que está haciendo. Si usted quiere ser capaz de abrir lecture.mp4 en vlc.exe que no hacer una aplicación de escritorio en su lugar.
Not allowed to load local resource
error)Si está ejecutando IIS en su PC, puede agregar el directorio al que está intentando acceder como un Directorio virtual. Para hacer esto, haga clic derecho en su sitio en ISS y presione "Agregar directorio virtual". Nombra la carpeta virtual. Apunte la carpeta virtual a la ubicación de su carpeta en su PC local. También debe proporcionar credenciales que tengan privilegios para acceder a la carpeta específica, por ejemplo. HOSTNAME \ nombre de usuario y contraseña. Después de eso, puede acceder al archivo en la carpeta virtual como cualquier otro archivo en su sitio.
http://sitename.com/virtual_folder_name/filename.fileextension
Por cierto, esto también funciona con Chrome que de lo contrario no acepta el archivo de protocolo de archivo: //
Espero que esto ayude a alguien :)
fuente
Janky en el mejor de los casos
y luego haga clic derecho, seleccione la opción "copiar ubicación" y luego péguelo en la URL.
fuente
de vuelta a 2017:
use URL.createObjectURL (archivo) para crear un enlace local al sistema de archivos que el usuario seleccione;
no olvides liberar memoria usando URL.revokeObjectURL ()
fuente
Tengo un camino y trabajo como este:
fuente