Если нет способа прочитать двоичный файл на Javascript на стороне клиента, как проанализировать текстовый файл? - PullRequest
1 голос
/ 06 февраля 2011

Я собираюсь поместить текстовый файл на сервер моего интернет-провайдера, например, http://home.ISP.net/~foobar/text.txt.

Как я могу прочитать это с помощью Javascript в браузере, например, из http://home.ISP.net/~foobar/textreader.html?

Я уже знаю, что не могу прочитать двоичный файл, который находится на веб-сервере из браузера.

Спасибо.

Ответы [ 4 ]

1 голос
/ 06 февраля 2011

Поскольку вы собираетесь читать его из того же домена, просто используйте Ajax для загрузки файла.

Я думаю, что вы могли бы прочитать файл на стороне клиента, просто используя тег ввода файла и загрузив его с объектом FileReader, хотя я не знаю, поддерживается ли он в браузере, отличном от Firefox.

0 голосов
/ 08 мая 2014

В моем кроссплатформенном приложении мне нужно было получить документы из облачного хранилища и сохранить их в локальной файловой системе через Cordova.Вот соответствующие части кода, которые работают для меня;

1) Ajax-вызов для получения и загрузки файла

$.ajax({
            url:        fileurl,   // full qualified URL to document
            dataType: 'text',
            mimeType: 'text/plain; charset=x-user-defined',
            async:      false,
            cache:      false
            }).done(function(data) {    
                        var data = str2ab(data);
                        writeData(newfile, data);
            }); 

2) Подготовка извлеченных двоичных данных

 function str2ab(str) {
          var buf = new ArrayBuffer(str.length); // 2 bytes for each char
          var bufView = new Uint8Array(buf);
          for (var i=0, strLen=str.length; i<strLen; i++) {
            bufView[i] = str.charCodeAt(i);
          }
          return buf;
    }

3) Записать данные в файловую систему с помощью плагина cordova.Подсказка: предполагается, что файловая система "fs" была инициализирована ранее.

    function writeData(path, data)
    {
        var content, newContent = "";
        var newfile = path ;
        //
        fs.root.getFile(newfile, {create: true, exclusive: false}, 
                function(fileEntry) 
                {
                    fileEntry.createWriter(function(fileWriter) {
                        fileWriter.onwriteend = function(e) {
                            console.log('Write completed: ' + fileEntry.fullPath);                          
                        };
                        fileWriter.onerror = function(e) {
                            console.log('Write failed: ' + e.toString());
                        };

                        fileWriter.write(data);
                  }), 
                  function() {
                            alert("ERROR WRITE FILE");
                  }, 
                  function() {
                      alert("ERROR");
                  }
                }
        );                          
    };
0 голосов
/ 06 февраля 2011

Ваш HTML-документ может использовать XMLHttpRequest для извлечения текстового документа.

Обратите внимание, что файл может быть двоичным файлом (например, изображением), хотя для его анализа потребуется некоторая хитрость JavaScript (например, обрабатывая его как строку байтов и обрабатывая его с помощью строковых функций, таких как substr).

0 голосов
/ 06 февраля 2011

Вы можете прочитать любой файл на веб-сервере внутри браузера, если он находится в «защищенном» пути, например, «web-inf» ...

Вероятно, самый простой способ прочитать файл - использовать "загрузку" из jQuery

http://api.jquery.com/load/

или "ajax":

http://api.jquery.com/jQuery.ajax/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...