Новичок в веб-разработке и попытка простой загрузки изображения, цель состоит в том, чтобы попасть в s3. Но в настоящее время, когда я выбираю фотографию и отправляю запрос, ничего не возвращается, не могу понять, почему.
HTML-форма
<form name = "update_profile_image_form" id = "update_profile_image_form" class = "text-center mt-2" method = "POST" enctype = "multipart/form-data" style = "display: block;" action = "/user/update/profile-image/">
<input type = "file" class = "form-control-file form-control-file-sm ml-3 mt-2" id = "profile_image" name = "profile_image" accept = "image/*">
<input type = "submit" value = "Update" class = "form-control-file form-control-file-sm ml-2 mt-2 text-center btn btn-sm btn-info" style = "width: 90%;"></input>
</form>
сценарий
$("form[name=update_profile_image_form").submit(function(e) {
var $form = $(this);
var $error = $form.find(".error");
var data = $form.serialize();
$.ajax({
url: "/user/update/profile_image",
type: "POST",
data: data,
dataType: "json",
success: function(resp) {
window.location.href = "/account/";
}
});
e.preventDefault();
});
маршрут
@app.route('/user/update/profile_image', methods=['POST'])
def update_profile_image():
return User().update_profile_image()
функция
def update_profile_image(self):
img = request.files.get('profile_image')
print(img)
return redirect(url_for('account'))
тоже пробовал img = request.form.get('profile_image')
Нет ошибки, print(img) возвращается как none
цель загрузить изображение, пройти в функцию, присвоить ему uuid и загрузить на s3, всем заранее спасибо!






Вы не можете сериализовать изображение и отправить его как json.
Вы должны использовать объект данных формы. Однако print(img) не будет работать, так как вы не можете распечатать изображение таким образом.
В качестве альтернативы вы можете передать изображение в виде строки, преобразовав его в base64.