2015-06-02 26 views
5

this code'u değiştirmek istiyorum, böylece yalnızca belirli bir dosyayla çalışır, ancak doğru URL parametresini ve tüm kod örneklerini anlayamıyorum bir dosya seçim iletişim kutusu bulundu.Javascript ile yerel bir dosya nasıl açılır FileReader()

<body> 
    <input type="file" onchange='readText(this)' /> 
    <div id="main"></div> 
</body> 

için:

<body onload="readText('file:///C:/test.txt')"> 
    <div id="main"></div> 
</body> 
+2

Böyle yerel dosyaları okuyamaz, kullanıcı aksi takdirde olurdu, dosya seçme iletişim kutusu kullanabilir veya bir dosya sürükleyip yapmak ve yerel dosyalara erişim vermek tarayıcı için sırayla düşmesi vardır büyük güvenlik sorunu –

cevap

6

Tarayıcılar güvenlik kısıtlamaları nedeniyle böyle yeteneğini vermeyin ben kodunu değiştirdiğinizde

<!DOCTYPE html> 
<html> 
    <head> 
    <title>reading file</title> 
    <script type="text/javascript"> 

     var reader = new FileReader(); 

     function readText(that){ 

      if(that.files && that.files[0]){ 
       var reader = new FileReader(); 
       reader.onload = function (e) { 
        var output=e.target.result; 

        //process text to show only lines with "@":    
        output=output.split("\n").filter(/./.test, /\@/).join("\n"); 

        document.getElementById('main').innerHTML= output; 
       };//end onload() 
       reader.readAsText(that.files[0]); 
      }//end if html5 filelist support 
     } 
</script> 
</head> 
    <body> 
    <input type="file" onchange='readText(this)' /> 
    <div id="main"></div> 
    </body> 

Neden çalışmıyor. Yerel dosyaları okuma izniniz yok, kullanıcı dosya seçim iletişim kutusunda belirli bir dosyayı seçmeyecek (ya da sürükle-bırak ile bunu yapamayacak). Bu yüzden tüm kod örnekleri dosya seçim diyaloğunu kullanır.

fazla detay Does HTML5 allow you to interact with local client files from within a browser