Я пытаюсь перебрать несколько форм с типом входного файла и Ajax их до Колба
просмотр JavaScriptкак это: -
У меня есть список форм под переменной var upFC = document.getElementsByClassName('uploadImage');
каждая форма выглядит так: -
<form method="post" action="/upload" enctype="multipart/form-data" id="f_x" class="uploadImage">
<input type="file" id="u_x">
<input type="submit" value="Submit" id="s_x">
</form>`
где x = [ 0 - 100 ]
затем Ajax файлы, которые я использовал этот метод
for (i = 0; i < upFC.length; i++) {
var cFile = upFC[i].elements[0].files;
var fileName = upFC[i].elements[0].value;
const fd = new FormData();
fd.append('file', cFile[i], rightName);
const fdx = new XMLHttpRequest();
fdx.open('post' , "/uploadIds" , true);
fdx.send(fd);
}
Код колбы выглядит следующим образом: -
@app.route('/uploadIds', methods=['POST' , 'GET'])
def handle_uploadIds():
d = os.path.join(root,'uploads/')
allImages = request.files.to_dict();
print("\n\n activated - ids \n\n ")
print("\n\n all images \n\n == > ", allImages )
for file in allImages:
print(f"----\n\n {allImages[file]} \n\n")
fileName = allImages[file].filename
dest = "/".join([d, fileName ])
print(f"\n\n upload 1 is active :{fileName}\n\n")
allImages[file].save(dest)
return '', 204
независимо от того, чтоМетод, который я пробую на фляге. Я всегда получаю первый файл правильно, а остальные циклы просто пустые .. без ошибок
Я также добавил журналы на стороне Javascript , чтобы увидеть,formData
отправляет правильный файл каждый раз, когда он зацикливается, и да, это так.
по какой-то причине колба получает первый файл, а не остальные.
после применения этого кода для отслеживания formDataперед отправкой.
for (var pair of fd.entries()) {
console.log(pair[0]+ ', ' + pair[1]);}
}
на хромированной консоли я получаю это
file, [object File]
2 file,
Печатная продукция из колбы в соответствии с моим cода
all images
== > {'file': <FileStorage: 'PHNZIH1062_id.png' ('image/png')>}
----
<FileStorage: 'PHNZIH1062_id.png' ('image/png')>
activated - ids
all images
== >
upload 1 is active :PHNZIH1062_id.png
{}
activated - ids
all images
== > {}
127.0.0.1 - - [13/Dec/2018 21:06:15] "POST /uploadIds HTTP/1.1" 204 -
127.0.0.1 - - [13/Dec/2018 21:06:15] "POST /uploadIds HTTP/1.1" 204 -
127.0.0.1 - - [13/Dec/2018 21:06:15] "POST /uploadIds HTTP/1.1" 204 -
методы, которые я пробовал:
request.files.getlist('file'):
request.files.to_dict():
request.files.items():
некоторые из выделенных методов, которые я пробовал: все 3 метода по этой ссылке
Я не уверен, что проблема в колбе или ajax но, вероятно, он находится внутри колбы кода