【问题标题】:Flask-wtf upload file errorFlask-wtf上传文件错误
【发布时间】:2015-05-11 18:45:00
【问题描述】:

关注https://github.com/lepture/flask-wtf/blob/v0.9.4/docs/form.rst 首先,我收到一条错误消息“项目合同字段中的错误 - 无”。如果我删除 "validators=[FileRequired(), FileAllowed(['pdf'], 'Pdf only!')])" 部分,我会收到另一条错误消息 'unicode' object has no attribute 'filename'

    proj_contract = FileField('Project contract'), validators=[FileRequired(), FileAllowed(['pdf'], 'Pdf only!')])

    <form method="POST" action="{{url_for('.new_project')}}" enctype="multipart/form-data"> 
        {{form.proj_contract.label}}:<input type="file" value="Upload"><br><br>
        <input type="submit" value="Next" name="Next">
    </form> 

    def new_project():
        projectInfoForm = ProjectInfoForm(request.form)
        if request.method == 'GET':
            return render_template('application/project/projectinfo.html', form = projectInfoForm)
        else:
            if projectInfoForm.validate_on_submit():
                c_filename = secure_filename(projectInfoForm.proj_contract.data.filename)
projectInfoForm.proj_contract.file.save(os.path.join(app.config['UPLOAD_FOLDER'], c_filename))

【问题讨论】:

    标签: python flask wtforms flask-wtforms


    【解决方案1】:

    尝试改变

    projectInfoForm = ProjectInfoForm(request.form)
    

    projectInfoForm = ProjectInfoForm()
    

    flask-wtf 使用 request.form 和 request.files 中的数据自动填充表单。如果你通过 request.form,它只会处理它,不会用 request.files 填写表单。

    【讨论】:

    • 您的建议没有任何改变。
    猜你喜欢
    • 1970-01-01
    • 2019-05-22
    • 2013-01-13
    • 2017-09-27
    • 1970-01-01
    • 1970-01-01
    • 2018-09-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多