Я загружаю несколько изображений через файловые входы, где name
и количество входов являются динамическими.
Однако они следуют этому соглашению об именах:
<input name = "image_path" ...
<input name = "image_path_F1" ...
<input name = "image_path_F2" ...
<input name = "image_path_F3" ...
Входные данные отправляются как объекты FormData.
При обработке одного изображения из сценариев Python, которые я ранее использовал:
uploaded_image = request.files.name_of_file_input_here
Вопрос
Существует ли общий метод "поймать все", доступный с request.files
, который можно использовать, например:
uploaded_images = request.files.*all
Или мне нужно будет создать какой-то цикл для обработки возможных имен файлов, например:
Клиентская сторона (jQuery)
var names_array = ["image_path","image_path_F1","image_path_F2"];
var length_of_names_array = 3;
отправил на питон...
Питон
names_array = request.forms.names_array
length_of_names_array = request.forms.length_of_names_array
counter = 1
for i, val in enumerate(range(length_of_names_array)):
if i == 0:
constructor = "image_path"
request.files.constructor
else:
constructor = "image_path_F" + str(counter)
request.files.constructor
counter += 1
Приведенный выше код просто сгенерирует правильные имена (и на самом деле я не уверен, что описанный выше метод request.files
будет работать с constructor
- edit, похоже, не работает).
Здесь может быть решение, которое можно найти в подходе:
https://stackoverflow.com/a/3111795/1063287
Но я не совсем понимаю, как это работает или как именно это можно применить к приведенному выше сценарию:
Если вы не знаете ключ, вы можете перебрать файлы:
for filename, file in request.FILES.iteritems():
name = request.FILES[filename].name