2015-03-19 3 views
0

у меня есть это текстовое поле:Поместите .txt файл в текстовом поле

<input id="inputOuvrirFichier" type="file" onchange="handleFiles(this.files)" name="files[]" accept=".txt"> 

Мне нужно поместить содержимое файла .txt в этом текстовое поле. Это моя функция:

function handleFiles(file){ 
document.getElementById("titre").click(); 
console.log(file);} 

Как я могу получить текст содержит в файле, пожалуйста? (Javascript) Спасибо.

+0

вы, вероятно, чтобы сначала прочитать файл на сервере (с PHP) и вернуть его через AJAX. –

+0

может использовать [FileReader API] (https://developer.mozilla.org/en-US/docs/Web/API/FileReader) в современных браузерах – charlietfl

ответ

0

JS, не доступ к локальному серверу на Уре, только бросить Ajax-запрос:

function readTextFile(file) 
{ 
    var rawFile = new XMLHttpRequest(); 
    rawFile.open("GET", file, false); 
    rawFile.onreadystatechange = function() 
    { 
     if(rawFile.readyState === 4) 
     { 
      if(rawFile.status === 200 || rawFile.status == 0) 
      { 
       var allText = rawFile.responseText; 
       $('#inputOuvrirFichier').text(allText) 
      } 
     } 
    } 
    rawFile.send(null); 
} 
+0

Спасибо, я не понимаю, как это работает, можете ли вы объяснить мне, пожалуйста ? –

+0

U сделать запрос на сервер (XMLHttpRequest) в файл ur, после чего я прочитал его при загрузке файла. rawFile - запрос. rawFile.responseText = результат запроса. – Legendary

+0

«XMLHttpRequest не может загрузить файл: /// C:/PROJET-SKI/[object% 20FileList]. Запросы на кросс-начало поддерживаются только для схем протокола: http, data, chrome, chrome-extension, https, chrome-extension-resource «. Я не могу использовать его локально? –

0

Вы можете использовать FileReader API

function handleFiles(files) { 
 
    var i = 0; 
 
    var reader = new FileReader(); 
 
    reader.onload = function() { 
 
    i++; 
 
    document.getElementById('result').innerHTML += this.result; 
 
    if (i < files.length) 
 
     reader.readAsText(files[i]) 
 
    }; 
 
    reader.readAsText(files[0]); 
 
}
<input id="inputOuvrirFichier" type="file" onchange="handleFiles(this.files)" name="files[]" accept=".txt" multiple=""> 
 
<div id="result"></div>

Смежные вопросы