Как загрузить изображения с помощью MultiFileField - PullRequest
0 голосов
/ 03 мая 2019

Я использую wtforms MultipleFileField для загрузки нескольких фотографий автомобилей для приложения продавца автомобилей.

Я пытался использовать MultiFileField, но, поскольку он возвращает только строку с filename, я могу 'сохранить изображение в моей статической папке.Я пытался использовать request.files.getlist(form.pics.name), но он всегда возвращается пустым.Я не знаю, как их спасти.

Форма:

class VehicleForm(FlaskForm):
    .
    .
    .
    pics = MultipleFileField("File(s) Upload", validators=[FileAllowed(["jpg", "png"])])

    submit = SubmitField("Add")

rout.py:

form = VehicleForm()
if form.validate_on_submit():
    if form.pics.data:
        pics = request.files.getlist(form.pics.name)
        if pics:
            for pic in pics:
                #code to save the picture
                #this may work but i don´t know since pics return empty
                picture_contents = pic.stream.read()
                random_hex = secrets.token_hex(8)
                _, f_ext = os.path.splitext(pic.filename)
                picture_fn = random_hex + f_ext
                picture_path = os.path.join(app.root_path, f"static/vehicle_pics", picture_fn)
                i = Image.open(picture_contents)
                i.thumbnail(500, 400)
                i.save(picture_path)

Я хочу найти способ сохранить изображения, но не могу найти решение, которое работает.

...