Чтение файла на стороне сервера с помощью Javascript

Кто-нибудь знает учебник о том, как читать данные из файла на стороне сервера с помощью JS? Я не могу найти какие-либо темы по этому вопросу, когда я Google. Я пытался использовать, но это не похоже на работу. Я просто хочу прочитать некоторые данные из файла для отображения на странице. Возможно ли это вообще?

var CSVfile = new File("test.csv");
var result = CVSfile.open("r");
var test = result.readln();
13
задан shinjuo 25 August 2010 в 15:16
поделиться

2 ответа

Для этого вам нужно будет получить файл с сервера, используя метод под названием AJAX.

Я бы изучил библиотеки JavaScript, такие как Mootools и jQuery. Они делают использование AJAX очень простым.

<html>
    <head>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/mootools/1.6.0/mootools-core.min.js"></script>
        <script type="text/javascript">
            //This event is called when the DOM is fully loaded
            window.addEvent("domready",function(){
                //Creating a new AJAX request that will request 'test.csv' from the current directory
                var csvRequest = new Request({
                    url:"test.csv",
                    onSuccess:function(response){
                        //The response text is available in the 'response' variable
                        //Set the value of the textarea with the id 'csvResponse' to the response
                        $("csvResponse").value = response;
                    }
                }).send(); //Don't forget to send our request!
            });
        </script>
    </head>
    <body>
        <textarea rows="5" cols="25" id="csvResponse"></textarea>
    </body>
</html>

Если вы загрузите его в каталог, в котором находится test.csv на вашем веб-сервере, и загрузите страницу, вы должны увидеть, что содержимое test.csv отображается в заданном текстовом поле.

9
ответ дан 2 December 2019 в 00:02
поделиться

Вам нужно использовать AJAX. С библиотекой jQuery код может выглядеть следующим образом:

$.ajax({ url: "test.csv", success: function(file_content) {
    console.log(file_content);
  }
});

или, если вы не хотите использовать необработанный объект XMLHTTPRequest (но у вас разные имена в разных браузерах

function xhr(){
  var xmlHttp;
  try{
    xmlHttp=new XMLHttpRequest(); 
  } catch(e) {
    try {
      xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); 
    } catch(e) {
      try {
        xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); 
      } catch(e) {
        alert("Your browser does not support AJAX!"); 
        return false;
      }
    }
  }
  return xmlHttp; 
}
req = xhr();
req.open("GET", "test.cvs");
req.onreadystatechange = function() {
  console.log(req.responseText);
};
req.send(null);

UPDATE 2017 есть новый API выборки, вы можете использовать его следующим образом:

fetch('test.csv').then(function(response) {
    if (response.status !== 200) {
        throw response.status;
    }
    return response.text();
}).then(function(file_content) {
    console.log(file_content);
}).catch(function(status) {
    console.log('Error ' + status);
});

поддержка довольно хорошая если вам нужно поддерживать браузер, который не поддерживает API выборки, вы можете использовать полифилл, что github created

7
ответ дан 2 December 2019 в 00:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: