2013-05-12 3 views
21

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

<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; 
} 

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

+0

Дубликат http://stackoverflow.com/questions/5028931/is-it-possible-to-read-a-file-using-javascript и около дюжины других вопросов. Пожалуйста, используйте окно поиска в следующий раз. –

+1

Не совсем. Этот вопрос касается AJAX. Кажется, это «загрузить файл, чтобы браузер мог его манипулировать». Он не упоминает о загрузке на сервер. –

ответ

18

Приведенный ниже пример основан на решении 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> 
Смежные вопросы