Python で cgi を組んでいるとき、良く悩むのがファイルの post
普通のファイルを受け取るだけで良ければ form に enctype="multipart/form-data" を指定して、cgi.FieldStorage() で受け取ればいいのですが、これだと巨大なファイルを受け取ったとき、どうしてもクライアント側でずっと待たされるので何とかしたい。
まぁ、用は Windows のファイルコピーなんかみたいに進捗状況を表示できればいいのですが、これって Python 云々じゃなく、JavaScript 等のブラウザ側の処理になるんですよね…若干悩みどころです。
何処かにそういったモジュールありそうなんだけどなぁ~なかなか見当たらないものですな。
ちなみに巨大ファイルを受け取るとき、cgi.FieldStorage() オブジェクトの value プロパティで受け取ったりすると、ファイルの内容をそのまま文字列として受け取ってサーバが悲しいことになるのでヘルプにある方法で受け取りましょう。
本番サーバでやってしまうと 4G のスワップファイルが出来たりして大変なことになるよ!(←やったのかよ…)
コメントを投稿する