1. ホーム
  2. python

[解決済み] Flaskに保存せずにファイルデータを読み込む

2022-06-08 02:49:29

質問

初めてFLASKアプリケーションを書いています。私はファイルのアップロードを扱っており、基本的に私がしたいことは、アップロードされたファイルのデータ/コンテンツを保存せずに読み取り、結果のページにそれを印刷することです。そうです、私はユーザーが常にテキストファイルをアップロードすると仮定しています。

私が使用している簡単なアップロード関数は次のとおりです。

@app.route('/upload/', methods=['GET', 'POST'])
def upload():
    if request.method == 'POST':
        file = request.files['file']
        if file:
            filename = secure_filename(file.filename)
            file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))
            a = 'file uploaded'

    return render_template('upload.html', data = a)

今、私はファイルを保存していますが、私が必要とするのは、ファイルの内容/データを格納するための'a'変数です...何かアイデアはありますか?

どのように解決するのですか?

FileStorage には stream というフィールドがあります。このオブジェクトは IO またはファイルオブジェクトを継承していなければならないので、このオブジェクトには read などの類似のメソッドがあります。 FileStorage も拡張して stream フィールドオブジェクトの属性を拡張するため、単に file.read() の代わりに file.stream.read() . また save という引数で dst というパラメータを StringIO または他のIOまたはファイルオブジェクトをコピーする FileStorage.stream を他のIOまたはファイルオブジェクトにコピーする。

ドキュメントを参照してください。 http://flask.pocoo.org/docs/api/#flask.Request.files http://werkzeug.pocoo.org/docs/datastructures/#werkzeug.datastructures.FileStorage .