Подтвердить что ты не робот

Получить данные загруженного файла в javascript

Я хочу загрузить файл csv и обработать данные внутри этого файла. Каков наилучший способ сделать это? Я предпочитаю не использовать php script. Я сделал следующие шаги. Но этот метод возвращает имя файла вместо пути к файлу. Так что я не получил желаемый результат.

<form id='importPfForm'>
<input type='file' name='datafile' size='20'>
<input type='button' value='IMPORT' onclick='importPortfolioFunction()'/>
</form>

function importPortfolioFunction( arg ) {
    var f = document.getElementById( 'importPfForm' );
    var fileName= f.datafile.value;   
}

Итак, как я могу получить данные внутри этого файла?

4b9b3361

Ответ 1

вы можете использовать новый файл HTML 5 api для чтения содержимого файла

https://developer.mozilla.org/en-US/docs/Using_files_from_web_applications

но это не будет работать в каждом браузере, поэтому вам, вероятно, потребуется резервное копирование на стороне сервера.

Ответ 2

Пример ниже основан на решении html5rocks. Он использует функцию браузера FileReader(). Только новые браузеры.

См. http://www.html5rocks.com/en/tutorials/file/dndfiles/#toc-reading-files

В этом примере пользователь выбирает HTML файл. Он загружается в <textarea>.

<form enctype="multipart/form-data">
<input id="upload" type=file   accept="text/html" name="files[]" size=30>
</form>

<textarea class="form-control" rows=35 cols=120 id="ms_word_filtered_html"></textarea>

<script>
function handleFileSelect(evt) {
    var files = evt.target.files; // FileList object

    // use the 1st file from the list
    f = files[0];

    var reader = new FileReader();

    // Closure to capture the file information.
    reader.onload = (function(theFile) {
        return function(e) {

          jQuery( '#ms_word_filtered_html' ).val( e.target.result );
        };
      })(f);

      // Read in the image file as a data URL.
      reader.readAsText(f);
  }

  document.getElementById('upload').addEventListener('change', handleFileSelect, false);
</script>

Ответ 3

В приведенном ниже примере показано основное использование FileReader для чтения содержимого загруженного файла. Вот рабочий Plunker этого примера.

<!DOCTYPE html>
<html>
  <head>
    <script src="script.js"></script>
  </head>

  <body onload="init()">
    <input id="fileInput" type="file" name="file" />
    <pre id="fileContent"></pre>
  </body>
</html>

script.js

function init(){
  document.getElementById('fileInput').addEventListener('change', handleFileSelect, false);
}

function handleFileSelect(event){
  const reader = new FileReader()
  reader.onload = handleFileLoad;
  reader.readAsText(event.target.files[0])
}

function handleFileLoad(event){
  console.log(event);
  document.getElementById('fileContent').textContent = event.target.result;
}

Ответ 4

FileReaderJS может читать файлы для вас. Вы получаете содержимое файла в обработчике события onLoad(e) как e.target.result.