Как получить mimetype входного файла в форме, используя FlaskForm? - PullRequest
0 голосов
/ 06 января 2020

Я пытаюсь построить алгоритм загрузки файла в flask, используя flask_wtf для обработки формы загрузки. У меня вопрос, как мне получить MIME-тип входного файла.


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')

1 Ответ

0 голосов
/ 07 января 2020

Хорошо, я понял. Вот код для людей, желающих его.



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')


...