2015-06-02 14 views
5

के साथ एक स्थानीय फ़ाइल कैसे खोलें I this code को संशोधित करना चाहते हैं ताकि यह केवल एक विशिष्ट फ़ाइल के साथ काम करे, लेकिन मैं सही यूआरएल पैरामीटर और मेरे पास मौजूद सभी कोड उदाहरणों को नहीं समझ सकता एक फ़ाइल चयन संवाद का उपयोग पाया।जावास्क्रिप्ट फ़ाइल रीडर()

<!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> 

यह क्यों काम नहीं करता है जब मैं से कोड बदलने के लिए:

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

रहे हैं:

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

आपको लगता है कि जैसे स्थानीय फ़ाइलें नहीं पढ़ सकते हैं, उपयोगकर्ता, फ़ाइल चयन संवाद का उपयोग करें या एक फ़ाइल खींचें और ब्राउज़र के लिए आदेश में ड्रॉप आप स्थानीय फ़ाइल पर पहुँच प्रदान करने के लिए है, अन्यथा यह होगा एक बड़ी सुरक्षा समस्या हो –

उत्तर

6

ब्राउज़र सुरक्षा प्रतिबंधों के कारण इस तरह के क्षमता देना नहीं है। आपको स्थानीय फ़ाइलों को पढ़ने की अनुमति नहीं है, जब तक कि उपयोगकर्ता फ़ाइल चयन संवाद में विशिष्ट फ़ाइल का चयन नहीं करेगा (या ड्रैग-एन-ड्रॉप के साथ ऐसा नहीं करेगा)। यही कारण है कि सभी कोड उदाहरण फ़ाइल चयन संवाद का उपयोग करते हैं।

अधिक जानकारी Does HTML5 allow you to interact with local client files from within a browser

संबंधित मुद्दे