Одна из конечных точек моего API обрабатывает запрос PUT с multipart / form-data. Во время загрузки аудиофайла некоторые другие данные отправляются с клиента в форме данных. Я могу получить файл, используя следующий код, но у меня возникают проблемы при получении данных формы.
@api.route('/upload')
class AudioUpload(Resource):
def put(self):
now = datetime.now()
filename = now.strftime("%Y%m%d_%H%M%S") + ".mp3"
cwd = os.getcwd()
filepath = os.path.join(cwd, filename)
name = request.form['name']
print('name: ', name, file=sys.stdout)
with open(filepath, 'wb') as f:
f.write(request.stream.read())
return filepath
Команда curl, с которой я тестировал:
curl -X PUT \
http://localhost:5000/api/upload \
-H 'content-type: multipart/form-data \
-F file=@Audio-3791_244-Feb_04_2018-13_30_04.wav \
-F name=xyz
Я получил 400 с ошибкой The browser (or proxy) sent a request that this server could not understand.
Как правильно получать данные формы в запросе PUT?
EDIT
Только что попробовал тот же код с постом. Он также не работает для получения данных формы с той же ошибкой.