Javascript позволяет пользователю выбрать текстовый файл, а затем прочитать его содержимое - PullRequest
0 голосов
/ 20 марта 2019

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

Я не знаю JQuery, поэтому я бы предпочел ответы в javascript, иначе я изо всех сил пытаюсь понять.

    function fileSelected(el){
    if(el.files && el.files[0]){
        var f = el.files[0]; 

        if(f){
            var FR = new FileReader();
            FR.onload = function(e) {
                var contents = e.target.result;
                console.log(contents.substr(1, contents.indexOf("n")));
                alert( "Got the file.\n" 
                    +"name: " + f.name + "\n"
                    +"type: " + f.type + "\n"
                    +"size: " + f.size + " bytes \n"
                    + "starts with: " + contents.substr(1, contents.indexOf("n"))
                );
            };       
            FR.readAsDataURL( el.files[0]);
        }

    }   
}
<html>
    <head>
        <title>Import File Attempt</title>
        <link rel="stylesheet" type="text/css" href ="style.css">
        <script type="text/javascript" src="script.js"></script>
    </head>
    <body>
        <input type="file" id="fileChoice" onchange="fileSelected(this)">
    </body>
</html>

Это предупреждение, которое я получил: Снимок экрана моего предупреждения

И это предупреждение, которое я хотел: Предупреждение, которое я хотел

Редактировать: Мысль добавить скриншот текстового файла в случаеэто помогает: Мой текстовый файл

Ответы [ 2 ]

0 голосов
/ 20 марта 2019

Если это текстовый файл, я бы предложил прочитать его, используя FileReader.readAsText():

function loadfile(event){
  var fr=new FileReader();
  fr.onload=function(){
    txt.value=fr.result;
  };
  fr.readAsText(event.target.files[0]);
}
textarea{
  width: 95%;
  height: 300px;
}
<input type="file" accept="text" onchange="loadfile(event)"><br>
<textarea id="txt"></textarea>

(name - type - size уже работало нормально, поэтому я их пропустил)

0 голосов
/ 20 марта 2019

Не знаю, правильно ли я понял вопрос.Вы хотите прочитать содержимое файла?Для файла .txt:

console.log(contents.substr(23,)); 

обрезано: data: text / plain; base64, и будет отображаться содержимое файла, закодированного в Base64

, также проверьте:

var str = "data:text/plain;base64,VGVzdG93YSB0cmXFm8SHCg==";
console.log (str.replace(/^\S+64,/, ''));

Он также будет работать для других файлов, кроме txt. Конечно, адаптируйтесь к вашим потребностям.

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