दिलचस्प पोस्ट
AWS लोचदार बीनस्टॉक पर Nginx कन्फर्मिंग में क्लाइंट_मैक्स_बस_आइसिस बढ़ाना आर में मर्ज करने / डेटा में शामिल होने का सबसे तेज़ तरीका क्या है? एएनटीएलआर में पार्सर नियम और लेक्सर नियमों के बीच व्यावहारिक अंतर? जावास्क्रिप्ट में "|" (एकल पाइप) क्या करता है? SQL सर्वर में दी गई तालिका को संदर्भित करने वाली सभी विदेशी कुंजीओं को कैसे सूचीबद्ध कर सकता हूं? निर्धारित करें कि क्या कोई सरणी में मान है सुडो परिवर्तन पाथ – क्यों? Xcode: टेस्ट बनाम डेबग प्रीप्रोसेसर मैक्रोज़ क्या सबसे अच्छा / सामान्य शांत यूआरएल क्रिया और क्रियाएं हैं? कैसे तय करें: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: संस्करण CXXABI_1.3.8 'नहीं मिला ( के लिए आवश्यक) दो अंकों के बीच कम से कम मार्ग की गणना करना स्थिर पैरामीटर के फ़ंक्शन के लिए दो आयामी सरणी को पास करें दिए गए स्ट्रिंग के लिए सभी अनन्य सबस्ट्रिंग उत्पन्न करें कोणीय जेएस: यूआई-राउटर का प्रयोग करके एक ऑब्जेक्ट को एक राज्य में पास करें वर्तमान निर्देशिका में सभी निजी फाइलों को देखने के लिए आदेश को क्रमबद्ध रूप से देखें

जावास्क्रिप्ट में पाठ फ़ाइल कैसे पढ़ा जाए

मैं अपनी जावास्क्रिप्ट फ़ाइल में एक टेक्स्ट फ़ाइल लोड करने की कोशिश कर रहा हूं और फिर जानकारी प्राप्त करने के लिए उस फ़ाइल की लाइनों को पढ़ता हूं, और मैंने फाइल रीडर की कोशिश की लेकिन यह काम नहीं करता। क्या कोई मदद कर सकता है?

function analyze(){ var f = new FileReader(); f.onloadend = function(){ console.log("success"); } f.readAsText("cities.txt"); } 

वेब के समाधान से एकत्रित समाधान "जावास्क्रिप्ट में पाठ फ़ाइल कैसे पढ़ा जाए"

हाँ, यह FileReader के साथ संभव है, मैंने पहले से ही इसका एक उदाहरण दिया है, यहां कोड है:

 <!DOCTYPE html> <html> <head> <title>Read File (via User Input selection)</title> <script type="text/javascript"> var reader; //GLOBAL File Reader object for demo purpose only /** * Check for the various File API support. */ function checkFileAPI() { if (window.File && window.FileReader && window.FileList && window.Blob) { reader = new FileReader(); return true; } else { alert('The File APIs are not fully supported by your browser. Fallback required.'); return false; } } /** * read text input */ function readText(filePath) { var output = ""; //placeholder for text output if(filePath.files && filePath.files[0]) { reader.onload = function (e) { output = e.target.result; displayContents(output); };//end onload() reader.readAsText(filePath.files[0]); }//end if html5 filelist support else if(ActiveXObject && filePath) { //fallback to IE 6-8 support via ActiveX try { reader = new ActiveXObject("Scripting.FileSystemObject"); var file = reader.OpenTextFile(filePath, 1); //ActiveX File Object output = file.ReadAll(); //text contents of file file.Close(); //close file "input stream" displayContents(output); } catch (e) { if (e.number == -2146827859) { alert('Unable to access local files due to browser security settings. ' + 'To overcome this, go to Tools->Internet Options->Security->Custom Level. ' + 'Find the setting for "Initialize and script ActiveX controls not marked as safe" and change it to "Enable" or "Prompt"'); } } } else { //this is where you could fallback to Java Applet, Flash or similar return false; } return true; } /** * display content using a basic HTML replacement */ function displayContents(txt) { var el = document.getElementById('main'); el.innerHTML = txt; //display output in DOM } </script> </head> <body onload="checkFileAPI();"> <div id="container"> <input type="file" onchange='readText(this)' /> <br/> <hr/> <h3>Contents of the Text file:</h3> <div id="main"> ... </div> </div> </body> </html> 

आईई के कुछ पुराने संस्करणों (मुझे लगता है कि 6-8) को ActiveX ऑब्जेक्ट का उपयोग करने के लिए भी ऐसा ही करना संभव है, मेरे पास कुछ पुराना कोड था जो इसे भी करता है, लेकिन यह कुछ समय था, इसलिए मुझे इसे खोना होगा मुझे जैकी कुई के ब्लॉग के सौजन्य का इस्तेमाल करते हुए मैंने इसी तरह का एक समाधान पाया है और इस उत्तर को संपादित किया (कोड को साफ भी किया)। आशा करता हूँ की ये काम करेगा।

अंत में, मैं सिर्फ कुछ अन्य जवाब पढ़ता हूं जो मुझे आकर्षित करने के लिए हराया, लेकिन जैसा कि वे सुझाव देते हैं, आप कोड की खोज कर सकते हैं जो आपको जावास्क्रिप्ट फाइल बैठा हुआ सर्वर (या डिवाइस) से एक टेक्स्ट फ़ाइल लोड करने देता है। यदि यह मामला है, तो आप चाहते हैं कि AJAX कोड को गतिशील रूप से लोड करने के लिए जो निम्नानुसार कुछ होगा:

 <!DOCTYPE html> <html> <head><meta charset="utf-8" /> <title>Read File (via AJAX)</title> <script type="text/javascript"> var reader = new XMLHttpRequest() || new ActiveXObject('MSXML2.XMLHTTP'); function loadFile() { reader.open('get', 'test.txt', true); reader.onreadystatechange = displayContents; reader.send(null); } function displayContents() { if(reader.readyState==4) { var el = document.getElementById('main'); el.innerHTML = reader.responseText; } } </script> </head> <body> <div id="container"> <input type="button" value="test.txt" onclick="loadFile()" /> <div id="main"> </div> </div> </body> </html> 

जावास्क्रिप्ट XMLHttpRequest () वर्ग (AJAX) का उपयोग करके यह बहुत आसानी से किया जा सकता है:

 function FileHelper() { FileHelper.readStringFromFileAtPath = function(pathOfFileToReadFrom) { var request = new XMLHttpRequest(); request.open("GET", pathOfFileToReadFrom, false); request.send(null); var returnValue = request.responseText; return returnValue; } } ... var text = FileHelper.readStringFromFileAtPath ( "mytext.txt" ); 

सुरक्षा कारणों के लिए जावास्क्रिप्ट के उपयोगकर्ता के फाइल सिस्टम तक पहुंच नहीं है FileReader केवल उपयोगकर्ता द्वारा चयनित फ़ाइलों के लिए है।

मेरा उदाहरण

 <html> <head> <link rel="stylesheet" href="http://code.jquery.com/ui/1.11.3/themes/smoothness/jquery-ui.css"> <script src="http://code.jquery.com/jquery-1.10.2.js"></script> <script src="http://code.jquery.com/ui/1.11.3/jquery-ui.js"></script> </head> <body> <script> function PreviewText() { var oFReader = new FileReader(); oFReader.readAsDataURL(document.getElementById("uploadText").files[0]); oFReader.onload = function (oFREvent) { document.getElementById("uploadTextValue").value = oFREvent.target.result; document.getElementById("obj").data = oFREvent.target.result; }; }; jQuery(document).ready(function(){ $('#viewSource').click(function () { var text = $('#uploadTextValue').val(); alert(text); //here ajax }); }); </script> <object width="100%" height="400" data="" id="obj"></object> <div> <input type="hidden" id="uploadTextValue" name="uploadTextValue" value="" /> <input id="uploadText" style="width:120px" type="file" size="10" onchange="PreviewText();" /> </div> <a href="#" id="viewSource">Source file</a> </body> </html>