2012-06-15 12 views
9

Ciao Sto cercando di leggere un file .json dal mio computer locale. non lo leggerà il codice che sto usando è:Come leggo un file di testo sul mio disco locale in una variabile in javascript

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

}); 

Tutto quello che sto ottenendo da questo è fallito quello che sto facendo di sbagliato. Non sto passando attraverso un server con questo.

+2

Se il server web non è sul computer locale, questo non funzionerà. – OptimusCrime

+0

Che codice di errore si ottiene? – Bergi

risposta

2

Non si può acess i file sul computer locale tramite JavaScript per motivi di sicurezza, ecc ....

Javascript e il DOM offrono il potenziale per gli autori malintenzionati di consegnare gli script da eseguire su un client computer tramite il web. Gli autori del browser contengono questo rischio utilizzando due restrizioni. Innanzitutto, gli script eseguono in una sandbox in cui possono eseguire solo azioni correlate al Web, non attività di programmazione generiche come la creazione di file.

Ma ho trovato questo sito, ma mai dato che una prova, forse vi aiuta: Reading local files in JavaScript

Edit: Se mai gonna esegue il codice su un server web e solo eseguirlo su il tuo sistema locale (chiamando index.html nel browser come: C: /Users/user/index.html potresti accedervi, ma se questo sito web dovesse mai andare online, suppongo che non funzioni

5

Scusa ma se si esegue la pagina dal disco locale (la barra degli indirizzi avrà il file del modulo: /// percorso della pagina) n puoi leggere un file dal disco, ma se esegui uno script dal server web (http://......) non puoi leggere il file dal disco locale. Ti protegge dal furto di informazioni da parte dell'utente. Potrebbe essere necessario caricare un file per leggerlo

EDIT: Devo riprenderlo. Il nuovo browser ti consentirà di leggere il file in base all'evento dell'utente. Se l'utente fa clic sull'input del file e apre un file, è possibile leggerlo

0

Se si sta parlando di file sul sistema locale (client) e non sul server, ciò non è possibile con un semplice javascript. Non è possibile accedere alle risorse del file system locale.

0

chiamata jQuery.getJSON è asincrona, in modo da poter vedere il tuo variabile di test solo all'interno funzione (dati) {...}

6

Scegli questa 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> 
Problemi correlati