Я работаю над приложением с Flask + React. Он отправляет файлы в mulitpart/form-data
от реакции на flask. Затем flask обрабатывает файл и сохраняет.
Но по какой-то причине файл обрабатывается неправильно, request.files
, request.data
, request.form
все возвращают пустое содержимое, только request.get_data()
показывает правильное содержимое, которое отправлено по реакции. Как я могу сохранить содержимое в get_data
в файл? В настоящее время он отображается в строке
frontend:
const formData = new FormData();
formData.append("file", file);
const xhr = new XMLHttpRequest();
xhr.open("POST", uploadUrl);
xhr.setRequestHeader("Content-Type", "multipart/form-data");
xhr.send(formData);
backend:
@APP.route('/upload/<name>', methods=['POST'])
def collection_upload(name):
request.get_data(parse_form_data=False)
# process file
Но результат не такой, как ожидалось: частичный результат request.headers
Content-Type: multipart/form-data
request.data результат из request.get_data(parse_form_data=False)
------WebKitFormBoundary7C9BrRB0MEmNZdXf
Content-Disposition: form-data; name="file"; filename="text.txt"
Content-Type: text/plain
test
------WebKitFormBoundary7C9BrRB0MEmNZdXf--
в текстовом файле только в примере, предназначенном для загрузки фото / видео, если файл в формате jpg, содержимое будет gibberi sh.
Если я изменю parse_form_data=True
, то request.data
станет пустым, кажется, что загруженный контент фактически не находится в данных формы. И я могу получить get_data только в строковом формате. Любое предложение о том, как лучше конвертировать данные в файл в flask?