亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

通過flask和wtforms MultipleFileField保存多個文件

通過flask和wtforms MultipleFileField保存多個文件

慕田峪7331174 2023-07-11 15:27:54
我正在嘗試使用 MultipleFileField 從 Flask 中的請求獲取并保存多個文件。但問題是我無法迭代它。我的意思是:形成班級class TestForm(FlaskForm):    user_id = IntegerField('user_id', validators=[DataRequired()])    name = StringField('name', validators=[DataRequired()])    description = StringField('description', validators=[DataRequired()])    category_id = IntegerField('category_id', validators=[DataRequired()])    date_of_purchase = DateField('date_of_purchase', validators=[DataRequired()])    guarantee_period = IntegerField('guarantee_period', validators=[DataRequired()])    files = MultipleFileField('files')并查看代碼:form = TestForm()...files = form.filesfor file in files:   with open(path.join('some_path', file.filename), 'wb') as f:        f.write(file.read())我收到這么大的請求:["<_io.BufferedReader name='1.jpg'>", "<_io.BufferedReader name='2.jpg'>"]但我收到錯誤:AttributeError: 'str' object has no attribute 'filename'所以它轉換io.BufferedReader為str. 我可以做什么來解決這個問題?
查看完整描述

1 回答

?
白衣非少年

TA貢獻1155條經驗 獲得超0個贊

您的“文件”是一個字符串,在 with 語句之前將其切片并保存到文件名變量中,然后在 with 語句中僅包含“文件名”。就像是:


form = TestForm()

...

files = form.files.data

for file in files:

   with open(path.join('some_path', file), 'wb') as f:

        f.write(file.read())


查看完整回答
反對 回復 2023-07-11
  • 1 回答
  • 0 關注
  • 135 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號