Flaskで保存せずにファイルデータを読み取る 質問する

Flaskで保存せずにファイルデータを読み取る 質問する

初めての 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」変数です。何かアイデアはありますか?

ベストアンサー1

FileStorageフィールドが含まれていますstream。このオブジェクトは IO またはファイル オブジェクトを拡張する必要があるため、readおよびその他の同様のメソッドが含まれている必要があります。FileStorageまた、フィールド オブジェクト属性も拡張するstreamため、file.read()代わりにを使用できます。また、パラメーターとして引数を、または他の IO またはファイル オブジェクトとして使用して、別の IO またはファイル オブジェクトにコピーすることもfile.stream.read()できます。savedstStringIOFileStorage.stream

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

おすすめ記事