В онлайн-приложениях загрузка файлов — обычная задача. Простые HTML-формы с шифрованием, настроенным на информацию о составных частях/формах, — это все, что требуется для публикации файла по URL-адресу при использовании Flask для загрузки файла. Файл получается из объекта запроса скриптом фляги на стороне сервера с использованием запроса. В этой статье мы рассмотрим, как загрузить несколько файлов с помощью Python. Это позволяет пользователю выбрать несколько файлов одновременно и загрузить все файлы на сервер. Прежде чем продолжить, установите Flask, написав в терминале команду:
pip install flask
Поэтапная реализация
Шаг 1: Создайте новую папку проекта Upload. Внутри этой папки создайте main.py и создайте папки templates.
Шаг 2: Создайте простую HTML-страницу index.html, чтобы выбрать несколько файлов и отправить их для загрузки файлов на сервер. Здесь файл HTML содержит форму для выбора и загрузки файлов методом POST. Атрибут enctype играет здесь важную роль. Он указывает, как данные формы должны быть закодированы при отправке на сервер. мы загружаем файлы, поэтому мы должны установить значение атрибута в multipart/form-data.
HTML
<
html
>
<
head
>
<
title
>Upload Multiple files : GFG</
title
>
</
head
>
<
body
>
<
form
action
=
"/upload"
method
=
"POST"
enctype
=
"multipart/form-data"
>
<
input
type
=
"file"
name
=
"file"
multiple />
<
input
type
=
"submit"
value
=
"Upload"
>
</
form
>
</
body
>
</
html
>
Шаг 3: Теперь внутри main.py. Здесь собирается список файловых объектов, а затем мы будем сохранять загруженные файлы один за другим в корневую директорию, используя цикл и функцию file.save().
Python3
from
flask
import
*
app
=
Flask(__name__)
@app
.route(
'/'
)
def
main():
return
render_template(
"index.html"
)
@app
.route(
'/upload'
, methods
=
[
'POST'
])
def
upload():
if
request.method
=
=
'POST'
:
# Get the list of files from webpage
files
=
request.files.getlist(
"file"
)
# Iterate for each file in the files List, and Save them
for
file
in
files:
file
.save(
file
.filename)
return
"<h1>Files Uploaded Successfully.!</h1>"
if
__name__
=
=
'__main__'
:
app.run(debug
=
True
)
Выход:
Выполните следующую команду в Терминале
python main.py
Индексная страница
Выберите несколько файлов из папки.
Выбрать несколько изображений
После отправки появится сообщение об успешном завершении.
Файлы загружены
Здесь мы видим, что четыре изображения *.png загружены в корневой каталог проекта.
Проверка