Я пытаюсь загрузить несколько файлов, используя Flask, HTML и JS. Однако, когда я пытаюсь получить их имена в маршруте Flask, список, если он пуст.
Это маршрут flask (с именем upload):
@app.route("/upload", methods=["POST", "GET"])
def upload():
if request.method == "POST":
return str(request.files)
Затем в mu upload. html У меня есть следующий скрипт:
<form action="" method="POST" enctype="multipart/form-data">
<div style="padding-left: 7%">
<div class="file-upload">
<input class="file-upload__input" type="file" name="files" id="files" multiple>
<button class="file-upload__button" type="button">Choose File(s)</button>
<span class="file-upload__label" style="color: white">No file(s) selected</span>
</div>
<script>
Array.prototype.forEach.call(
document.querySelectorAll(".file-upload__button"),
function(button) {
const hiddenInput = button.parentElement.querySelector(
".file-upload__input"
);
const label = button.parentElement.querySelector(".file-upload__label");
const defaultLabelText = "No file(s) selected";
// Set default text for label
label.textContent = defaultLabelText;
label.title = defaultLabelText;
button.addEventListener("click", function() {
hiddenInput.click();
});
hiddenInput.addEventListener("change", function() {
const filenameList = Array.prototype.map.call(hiddenInput.files, function(
file
) {
return file.name;
});
label.textContent = filenameList.join(", ") || defaultLabelText;
label.title = label.textContent;
});
}
);
</script>
<div style="padding-top: 75px; padding-left: 7%; padding-bottom: 10%">
<input type="submit" value="Save to Cloud" name="submit" class="file-upload__button">
</div >
</form>
Когда я запускаю его и используется метод POST, я получаю следующий результат:
How can I have access to the name of the files I uploaded please ?
This is what my interface looks like :
and
введите описание изображения здесь
ОБНОВЛЕНИЕ:
Когда я делаю print(request.files)
перед return
, я получаю:
ImmutableMultiDict([('files', <FileStorage: 'test.csv' ('text/csv')>)])
где test.csv
действительно правильное имя файла.
Пожалуйста, дайте мне знать, если у вас есть идеи о том, что я делаю неправильно