python - 如何使用 FlaskForm 在表单中获取输入文件的 mimetype?
问题描述
我正在尝试使用 flask_wtf 在烧瓶中构建文件上传算法来处理上传表单。我的问题是如何获得输入文件的 mimetype。
class FileUploadForm(FlaskForm):
file = FileField('File', validators=[DataRequired(), Length(min=1)])
submit = SubmitField('Upload')
@blueprint.route('/upload/', methods=['GET', 'POST'])
def upload():
form = FileUploadForm()
if form.validate_on_submit():
new_file = File(secure_filename(form.file.name),
form.file.read()
mimetype=# HERE I NEED TO PASS THE MIMETYPE)
db.session.add(new_file)
db.session.commit()
flash('File uploaded successfully !', 'success')
return redirect(url_for('view', file_id=new_file.id))
return render_template('files/upload.html', title='Upload Files')
解决方案
好的,我明白了。这是想要它的人的代码。
class FileUploadForm(FlaskForm):
file = FileField('Choose File', validators=[FileRequired()])
submit = SubmitField('Upload')
@blueprint.route('/upload/', methods=['GET', 'POST'])
def upload():
form = FileUploadForm()
if form.validate_on_submit():
secure_name = secure_filename(form.file.data.filename)
new_file = File(secure_name, form.file.data.stream.read(),
mime_type=form.file.data.mimetype,
length=form.file.data.stream.tell())
db.session.add(new_file)
db.session.commit()
flash('File uploaded successfully !', 'success')
return redirect(url_for('manager.files.view', file_id=new_file.id))
return render_template('files/upload.html', form=form, title='Upload Files')
推荐阅读
- ruby-on-rails - Rails 通过其他 2 个表连接
- python - 如何获取列表并填充值并放入数据框并在 Python 中进行过滤?
- sql - 如何计算 Informix SQL 中的差异?
- c++ - 模板 <> 用于专门化成员函数
- vue.js - 页面加载时带有模式对话框的烟花或五彩纸屑
- sql - Laravel:使用代码块在客户对象上设置字段时出现 SQL 错误
- c++ - 在 Mac 上使用 Visual Studio Code 中的标头时,体系结构文件 x86_64 的 C++(.cpp、.hpp)未定义符号
- jupyter-notebook - 带有雪花 python 连接器连接错误的 ipython3 笔记本
- flutter - 我如何创建从网站上获取的文章的部分标题?
- php - Laravel Route Model Binding 在不同模型使用相同结构时发生冲突