Python Flask 上传图片

标签 python flask sqlalchemy

我正在尝试将图像上传到系统上的文件夹并为其提供唯一标识符。这样每个成员都可以拥有自己的个人资料图片。我在分配 id 时遇到问题,不确定我是否正确地处理了这个问题。另外,将图像放在 SQLalchemy 数据库或文件夹中会更好吗?

@main.route("/upload", methods=['GET', 'POST'])
@login_required
def upload():
    if request.method == 'POST':
        file = request.files['file']
        if file and allowed_file(file.filename):
            filename = secure_filename(file.filename)
            rec = file(filename=filename, user=g.user.id)
            rec.store()
            file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))
            return redirect(url_for('.home'))
    return """
    <!doctype html>
    <title>Upload new File</title>
    <h1>Upload new File</h1>
    <form action="" method=post enctype=multipart/form-data>
      <p><input type=file name=file>
         <input type=submit value=Upload>
    </form>
    <p>%s</p>
    """ % "<br>".join(os.listdir(app.config['UPLOAD_FOLDER'],))

我的错误: 上传文件“/home/ed/Development/Python/social/app/main/views.py”,第 253 行 rec = 文件(文件名=文件名,用户=g.user.id) TypeError: 'FileStorage' 对象不可调用

最佳答案

写入文件的正确方法是:

file = request.files['file']
if file and allowed_file(file.filename):
    filename = secure_filename(file.filename)
    file.save(os.path.join(app.config['UPLOAD_FOLDER'], actual_filename))

要使用它,您的配置中应该有一个 UPLOAD_FOLDER

关于Python Flask 上传图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31325655/

相关文章:

python - 如何在 Python 中使用海象运算符执行赋值解构

python - 如何根据字符拆分列并在每次拆分时附加其余列

Python 在函数返回时挂起

python - 使用日期在 uwsgi ini 文件中创建日志文件时出错

python - 如何以给定的数字启动 SQLAlchemy primary_key?

python - 将数组写入 csv python(一列)

python - 如何使用 python-twitter 删除所有推文?

python - Python 中的 SAML 2.0 服务提供商

python - 修复 python Sqlalchemy 模型无法插入 mysql 语法错误

python - 连接失效时重新运行 SQLAlchemy 查询