如何正确配置Flask上传以上传文件

时间:2018-12-08 01:43:27

标签: python flask flask-uploads

我正在尝试构建一个Flask应用程序,可以在其中上传JSON文件。我遵循了官方的烧瓶指南。这是我的代码:

ThreadWithState tws = new ThreadWithState("I've got some text");
Thread thread = new Thread(tws.Work);

thread.Start();

我的目录结构如下: 文件夹->

app.py

模板-> uploads.html

运行应用程序时,出现此错误:

import os
from flask import Flask, flash, request, render_template, url_for
from flask_restful import Resource, Api
from flask_uploads import UploadSet, configure_uploads, DATA

app = Flask(__name__)

app.config['UPLOADED_FILES_DEST'] = os.getcwd()

file = UploadSet('SecretKey', DATA)

configure_uploads(app, file)

@app.route('/')
def my_form():
    return render_template('upload.html')

@app.route('/checkUpload', methods=['POST'])
def my_form_post():
    if request.method == 'POST' and 'file' in request.files:
    keyFile = file.save( request.files['keyfile'] )
# ...

我了解我需要为要上传的文件设置目标位置, 但是我不知道该怎么做;我不明白为什么我当前设置目标目录的方式是错误的。理想情况下,我不想将此文件存储在任何地方,我只想获取此文件,从中检查一些凭据,然后在凭据有效时启动会话。任何帮助深表感谢。谢谢您的宝贵时间。

P.S:请忽略代码的间隔,我还研究了与这些代码有关的其他一些SO问题:

1)Flask Upload Issue

2)Flask Upload Issue

但是他们没有和我完全一样的问题,所以我正在创建一个新线程。

1 个答案:

答案 0 :(得分:0)

您没有将目的地设置为UploadSetflask_uploads不知道在哪里存储文件。只需设置目的地:

file = UploadSet('SecretKey', DATA, default_dest=lambda x: 'SecretKey')

希望这会有所帮助。