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

У меня есть форма, когда я прошу пользователя загрузить .patch файл вместе с этим несколько текстовых входов.

Могу ли я получить содержимое этих файлов или, в частности, несколько строк (измененные файлы для исправления) и показать его пользователю, возможно, в отключенном текстовом поле, прежде чем он отправит форму?

введите описание изображения здесь

2

Решение

Что вы можете сделать, это прочитать файл .patch и разобрать его RegEx чтобы получить имена файлов внутри.

.patch файл представляет собой текстовый файл, который имеет формат как:

--- src.orig/java/org/apache/nutch/analysis/NutchAnalysisConstants.java
+++ src/java/org/apache/nutch/analysis/NutchAnalysisConstants.java

поэтому каждое «—» указывает имя файла, поэтому вы можете прочитать содержимое выбранного файла и использовать регулярные выражения, чтобы получить имена файлов и добавить их в свой ввод:

$("#fileInput").on("change", function(){ //When a new file is selected
var file = $("#fileInput").prop("files")[0]; //get the file

if (file.name.indexOf(".patch") < 0) {
alert("You can only select .patch files");
$("#fileInput").val("");
}
else {
var reader = new FileReader();
reader.readAsText(file, "UTF-8");
reader.onload = function (evt) {  //When file is loaded.
$("#text").html("");

var fileContent = evt.target.result; //event.target.result is the file content
var names = fileContent.match(/--- .*?\s/g); //Use regex to get lines starting with --- ending with \s

$(names).each(function(i,e){
$("#text").html($("#text").html() + e + "\n"); //Add each line to the disabled textarea
$("#text").attr("rows", ++i); //sets height of textarea to the no. of lines
});
}
}
});
3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]