18910140161

Python-Flask WTForms不允许图像上传-堆栈溢出

顺晟科技

2022-10-18 13:17:17

132

亲爱的,在我的应用程序中,我一直在努力将图像上传到烧瓶表单上。我已经简化了代码,只显示表单是否通过打印语句拾取了文件。脚本如下:

from flask import Flask, render_template, session, redirect, url_for
from flask_wtf import FlaskForm
from wtforms import  SubmitField
from flask_wtf.file import FileField
from PIL import Image
import os
from main import app

class Uploadform(FlaskForm):

    picture = FileField('Update Profile Pic')
    submit = SubmitField('Submit')


#### route
@app.route('/', methods=['GET', 'POST'])
def upload():

    form = Uploadform()
    path = app.root_path

    if form.validate_on_submit:
        print('form submitted')
        if form.picture.data:
            print('image available')
            img = form.picture.data
            print(img)

        else:
            print('no image')
            

    return render_template ('form.html', form=form)

if  __name__ == '__main__':
    app.run(debug=True)

HTML表单如下:

<代码><;HTML Lang=";英文";>;<;头部>;<;元字符集=";UTF-8";>;<;meta HTTP-equiv=";X-ua-compatible";内容=";IE=边缘";>;<;元名称=";视口";内容=";宽度=设备宽度,初始比例=1.0";>;<;标题>;文档<;/标题>;<;/标题>;<;身体>;<;FORM方法=";POST";操作=";{{('上传')的URL_}}";>;{{form.hidden_标记()}}{{Form.csrf_标记}}{{表单.图片.标签}}<;BR>;{{form.picture}}<;BR>;{{form.submit()}}<;br>;<;/窗体>;<;/正文>;<;/HTML>;

当我运行上面的命令时,我得到了打印语句:“表单已提交”和“无图像”

提前

感谢您的帮助。


顺晟科技:

<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <form method="POST" action="{{url_for('upload')}}">

    {{ form.hidden_tag() }}
    {{ form.csrf_token }}
    {{form.picture.label}} <br>
    {{form.picture}} <br>
    {{form.submit() }} <br>


    </form>
</body>
</html>

<form method="POST" action="{{url_for('upload')}}" enctype="multipart/form-data"> 如果用户将通过表单上载文件,则此值是必需的。

multipart/form-data

需要是

if form.validate_on_submit:
  • TAG:
相关文章
我们已经准备好了,你呢?
2024我们与您携手共赢,为您的企业形象保驾护航