如何使用 FlaskForm 获取表单中输入文件的 mimetype?

How to get mimetype of the input file in a form using FlaskForm?

我正在尝试使用 flask_wtf 在 Flask 中构建文件上传算法来处理上传表单。 我的问题是如何获取输入文件的 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')