<input type="file" id="file-id" name="file_name" onchange="theimage();">
Este es mi botón de carga.
<input type="text" name="file_path" id="file-path">
Este es el campo de texto donde tengo que mostrar la ruta completa del archivo.
function theimage(){
var filename = document.getElementById('file-id').value;
document.getElementById('file-path').value = filename;
alert(filename);
}
Este es el JavaScript que resuelve mi problema. Pero en el valor de la alerta me da
C:\fakepath\test.csv
y en Mozilla me da:
test.csv
Pero yo quiero la ruta de archivo totalmente cualificada local. ¿Cómo resolver este problema?
Si esto se debe a un problema de seguridad del navegador, ¿cuál debería ser la forma alternativa de hacerlo?
Algunos navegadores tienen una función de seguridad que impide que JavaScript conozca la ruta completa de su archivo. Tiene sentido: como cliente, usted no quiere que el servidor conozca el sistema de archivos de su máquina local. Sería bueno que todos los navegadores hicieran esto.
Me encontré con el mismo problema. En IE8 se puede solucionar creando una entrada oculta después del control de entrada del archivo. El relleno de este con el valor de it's hermano anterior. En IE9 esto se ha solucionado también.
La razón por la que quería conocer la ruta completa era para crear una vista previa de la imagen en javascript antes de subirla. Ahora tengo que subir el archivo para crear una vista previa de la imagen seleccionada.