2012-06-15 10 views
9

Hola, estoy tratando de leer en un archivo .json desde mi máquina local. no lo va a leer en el código que estoy utilizando es:¿Cómo puedo leer un archivo de texto en mi disco local en una variable en javascript

jQuery.getJSON('../json/test.json') 
    .done(function(data) { 
     var test = data; 
     alert("sucsess"); 
    }) 
    .fail(function(data){ 
    alert("failed"); 

}); 

Todo lo que estoy recibiendo de sefalla lo que estoy haciendo mal. No voy a pasar por un servidor con esto.

+2

Si su servidor web no está en su máquina local, esto no funcionará. – OptimusCrime

+0

¿Qué código de error obtiene? – Bergi

Respuesta

2

No se puede acess archivos de su ordenador local a través de JavaScript, debido a razones de seguridad, etc ....

JavaScript y el DOM ofrecen el potencial para los autores maliciosos a entregar secuencias de comandos para ejecutar en un cliente computadora a través de la web. Los autores del navegador contienen este riesgo usando dos restricciones. En primer lugar, los scripts ejecutan en un entorno limitado en el que solo pueden realizar acciones relacionadas con la web, no tareas de programación de uso general, como la creación de archivos.

Pero he encontrado este sitio web, pero nunca se dio por que un intento, tal vez le ayuda a: Reading local files in JavaScript

Editar: Si nunca van a ejecutar su código en un servidor web y sólo lo ejecuta en su sistema local (llamando a index.html en el navegador como: C: /Users/user/index.html puede acceder a él, pero si este sitio web alguna vez va a ir en línea, lo que supongo, eso no va a funcionar

5

Lo siento, pero si ejecuta la página desde la unidad local (la barra de direcciones tendrá el archivo de formulario: /// ruta a su página) el n puede leer un archivo del disco, pero si ejecuta una secuencia de comandos desde el servidor web (http://......) no puede leer el archivo desde la unidad local. Le protege de robar información de la unidad de usuario. Es posible que deba cargar un archivo para leerlo

EDITAR: Tengo que recuperarlo. El nuevo navegador le permitirá leer el archivo en función del evento del usuario. Si el usuario hace clic en la entrada de archivo y abre un archivo, puede leerlo

0

Si está hablando de archivos en el sistema local (cliente) y no en el servidor, no es posible hacerlo con javascript. No puede acceder a los recursos locales del sistema de archivos.

0

llamada jQuery.getJSON es asíncrona, por lo que se puede ver la variable de prueba única función (datos) {...}

6

Marque esta fiddle

<title>reading Text files</title> 
<body> 
    <input type="file" id="files" name="files[]" multiple /> 
    <output id="list"></output> 
    <script> 
     function handleFileSelect(evt) { 
     var files = evt.target.files; // FileList object 

     // Loop through the FileList 
     for (var i = 0, f; f = files[i]; i++) { 

     var reader = new FileReader(); 

     // Closure to capture the file information. 
     reader.onload = (function(theFile) { 
      return function(e) { 
       // Print the contents of the file 
       var span = document.createElement('span');      
       span.innerHTML = ['<p>',e.target.result,'</p>'].join(''); 
       document.getElementById('list').insertBefore(span, null); 
      }; 
     })(f); 

     // Read in the file 
     //reader.readAsDataText(f,UTF-8); 
     //reader.readAsDataURL(f); 

     reader.readAsText(f); 
     } 
    } 
    document.getElementById('files').addEventListener('change', handleFileSelect, false); 
    </script> 
</body> 
Cuestiones relacionadas