Traté de abrir el archivo con
window.open("file:///D:/Hello.txt");
El navegador no permite abrir un archivo local de esta manera, probablemente por razones de seguridad. Quiero usar los datos del archivo en el lado del cliente. ¿Cómo puedo leer el archivo local en JavaScript?
javascript
Joval
fuente
fuente
null
en cadaonClick
evento debería ser el truco, consulte: stackoverflow.com/a/12102992/63011FileReader
, pero un comentario sobre lodisplayContents
anterior: tenga en cuenta que una configuracióninnerHTML
como esta con contenido no confiable puede ser una vulnerabilidad de seguridad. (Para verlo usted mismo, cree un elemento quebad.txt
contenga algo así<img src="/nonexistent" onerror="alert(1);">
y vea que la alerta se ejecuta, podría ser un código más malicioso)innerHTML
contextContent
. Gracias por tu comentario.DOMContentLoaded
evento para eso.El recurso HTML5 fileReader le permite procesar archivos locales, pero estos DEBEN ser seleccionados por el usuario, no puede enraizar sobre el disco de los usuarios en busca de archivos.
Actualmente lo uso con versiones de desarrollo de Chrome (6.x). No sé qué otros navegadores lo admiten.
fuente
Debido a que no tengo vida y quiero esos 4 puntos de reputación para poder mostrar mi amor a las personas que realmente son buenas para codificar, he compartido mi adaptación del código de Paolo Moretti . Simplemente use la
openFile(
función para ejecutarse con el contenido del archivo como primer parámetro)
.fuente
clickElem()
, puede simplemente llamarfileInput.click()
. (al menos en la última versión de Chrome)Tratar
pero el usuario debe tomar medidas para elegir el archivo
Mostrar fragmento de código
fuente
El método de solicitud xmlhttp no es válido para los archivos en el disco local porque la seguridad del navegador no nos permite hacerlo. Pero podemos anular la seguridad del navegador creando un acceso directo-> clic derecho-> propiedades en destino "... navegador location path.exe "adjunte --allow-file-access-from-files. Esto se prueba en Chrome, sin embargo, se debe tener cuidado de que todas las ventanas del navegador se cierren y el código se ejecute desde el navegador abierto a través de este acceso directo.
fuente
No puedes Los nuevos navegadores como Firefox, Safari, etc. bloquean el protocolo 'archivo'. Solo funcionará en navegadores antiguos.
Tendrás que subir los archivos que quieras.
fuente
Por lo general, Javascript no puede acceder a archivos locales en nuevos navegadores, pero el objeto XMLHttpRequest se puede usar para leer archivos. Entonces, en realidad, es Ajax (y no Javascript) el que está leyendo el archivo.
Si desea leer el archivo
abc.txt
, puede escribir el código como:Ahora
txt
contiene el contenido del archivo abc.txt.fuente