2

私は単一のファイルをアップロードしている単純なフラスコアプリを持っていますが、ファイルサイズは5MB未満 で、フラスコアプリでテストケース
を定義しました。
if request.content_length < 5.250e+6: ## setting upload limit to 5MBただし、これはアップロード後にファイルサイズを確認しています。または私が間違っているかもしれません。
アップロードする前にファイルサイズを取得する方法はありますか???

ここにpython + GAEのpythonソリューションがありますが、私はpython Webフレームワークが初めてです。私はフラスコについてほとんど知りません。
このソリューションは、私にとって非常に複雑なwebapp2に基づいており、GAEにも基づいています。それはまた別の話です。だから誰でもflask同等のものを生成することができますか、それを行うための他の可能な方法flask???

4

2 に答える 2

5

Flask は、アップロードの進行中にファイル サイズを制限できます。ドキュメントを参照してください。必要なのはMAX_CONTENT_LENGTH、アプリの構成時に設定することだけです。

于 2012-12-22T12:30:04.290 に答える
4

これは、Audrius Kažukauskas の回答を少し拡張したものです。


アップロードする前にファイルサイズを取得する方法はありますか???

いいえ。アップロードされたファイルの処理に使用する werkzeug のドキュメントによると、すべてのブラウザでアップロードが保証されるわけではありませんFlask内のすべてのデータの content-length の合計のみrequestが存在することが保証されます。ウェブブラウザ。したがって、Flask/werkzeug は、ファイルのアップロード後にのみチェックを強制できます。

ただし、メモリ オーバーフローによる Web サーバーのクラッシュを回避するには、アップロード可能なサイズを制限する必要があります。MAX_CONTENT_LENGTHこれは、アプリの構成ファイルで言及できる構成変数です。

Flask docの使用例:

from flask import Flask, Request

app = Flask(__name__)
app.config['MAX_CONTENT_LENGTH'] = 16 * 1024 * 1024  # for 16MB max-limit.

ただし、重大なアプリケーションの場合は、Flask プラグインFlask-Uploadsの使用を検討する必要があります。これにより、特定のファイル タイプのホワイトリストとブラックリストへの登録、タイプベースのアップロード ルール、構成可能なアップロード先など、より高度なオプションが可能になります。

なぜ追加の拡張機能を使用する必要があるのか​​疑問に思われるかもしれません。はマイクロフレームワークだ
からです。Flask何でもできるフレームワークではありません。

于 2015-12-05T14:30:52.447 に答える