Я пытаюсь загрузить 2 файла (аудиофайл и файл изображения) вместе с некоторыми данными.Я очень новичок в использовании Flask, но после просмотра других людей с проблемами с хранилищем файлов я не уверен, что делаю неправильно.
class FiguresResource(Resource):
parser = reqparse.RequestParser()
parser.add_argument(
'thing',
type=str)
parser.add_argument(
'image_file',
type=werkzeug.datastructures.FileStorage,
location=UPLOAD_FOLDER)
parser.add_argument(
'audio_file',
type=werkzeug.datastructures.FileStorage,
location=UPLOAD_FOLDER)
def post(self):
db = connect(MONGODB_DB, host=MONGODB_HOST, port=MONGODB_PORT)
data = self.parser.parse_args()
image = data['image_file']
audio = data['audio_file']
fig = Figure(
data['thing'],
image.filename,
get_file_size(image),
audio.filename,
get_file_size(audio)
)
image.save(image.filename)
audio.save(audio.filename)
fig.save()
db.close()
Когда я пытаюсь отправить данные, я получаю сообщение «Внутренняя ошибка сервера»500 от моего запрашивающего клиента.Сервер-колба выбросит ---
Файл "/home/joe/Projects/PyKapi-venv/kapi/resources/figure_resource.py", строка 53, в сообщение image.filename,AttributeError: у объекта 'NoneType' нет атрибута 'filename' 127.0.0.1 - - [20 / May / 2018 17:12:25] "POST / figure HTTP / 1.1" 500 -
Я думалпроблема была в моем запросе Http, но не так уверен сейчас.Первоначально я отправлял свой запрос почтальону, но недавно перешел на использование curl.Это моя команда curl ---
curl -F thing=Fruits -F image_file=@/home/joe/Projects/Pics/Fruits.jpg -F audio_file=@/home/joe/Projects/Audio/Fruits http://127.0.0.1:5000/figures