Я не могу загрузить несколько файлов в свой html-шаблон [дубликат]
Я делаю сайт, на котором вы можете отправить свою игру с несколькими дополнительными изображениями. Я загружаю изображения и они отправляются в API. Затем, когда вы открываете страницу игры, происходит запрос к API и он возвращает изображение. Проблема в том, что когда я пытаюсь загрузить несколько изображений, загружается только последнее. Вот моя html-форма
А здесь я пытаюсь получить данные
@app.route('/senddata', methods=['POST', 'GET'])
def senddata():
url = f"{api_url}/games"
if request.method == 'POST':
title = request.form.get('title')
desc = request.form.get('desc', '')
author = int(current_user.get_id())
prev_file = request.files['prev']
zip_file = request.files['file']
files = request.files.getlist('files')
if not prev_file.filename.endswith('.png'):
prev_file = open('url_for(static, filename=images/default.png)', 'rb')
images = []
for file in files:
if file.filename.lower().endswith('.png'):
images.append(("png", file.read()))
print('Check')
data = {
"title": title,
"desc": desc,
"author": author,
"prev": ("png", prev_file.read()),
"file": ("zip", zip_file.read()),
"images": images
}
requests.post(url, data=pickle.dumps(data)).json()
return redirect('/index')
А здесь я пытаюсь использовать данные
<div id="info" style="width: 48vw">
<p id="infoframe" style="outline:2px solid #555; border-radius:5px; width: 100%; min-height: 15vw;">
{{game['desc']}}
</p>
<div id="imgframe" style="width: 100%">
<div id="images" class="carousel slide carousel-fade" data-bs-ride="carousel" style="width: max-content; margin: auto">
<div class="carousel-inner">
{% for image in game['images'] %}
<div class="carousel-item {% if loop.first %}active{% endif %}">
<img src="{{api_url}}/file?p={{image['img']}}" class="d-block w-100" style="max-width: 20vw;max-height: 20vw;">
</div>
{% endfor %}
</div>
<button class="carousel-control-prev" type="button" data-bs-target="#images" data-bs-slide="prev">
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
<span class="visually-hidden">Предыдущая</span>
</button>
<button class="carousel-control-next" type="button" data-bs-target="#images" data-bs-slide="next">
<span class="carousel-control-next-icon" aria-hidden="true"></span>
<span class="visually-hidden">Следующая</span>
</button>
</div>
</div>
</div>
Я вроде как новичок в python и html, поэтому я вроде как не понимаю, как это работает и почему это не работает так, как было задумано.
Я видел, что мне нужно несколько, поэтому я использовал его в
<input id='files' type='file' class="btn btn-outline-info" name="files" accept="image/png" multiple>
но он по-прежнему отправляет только последнее изображение