Как получить данные формы из запроса PUT с помощью Flask-restplus - PullRequest
0 голосов
/ 04 мая 2018

Одна из конечных точек моего 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

Только что попробовал тот же код с постом. Он также не работает для получения данных формы с той же ошибкой.

...