ついに ねんがんの AF3+1 をてにいれた!| メイン |KB2455033 インストール失敗

巨大なファイルを post

| コメント(0) | トラックバック(0)

Python で cgi を組んでいるとき、良く悩むのがファイルの post

普通のファイルを受け取るだけで良ければ form に enctype="multipart/form-data" を指定して、cgi.FieldStorage() で受け取ればいいのですが、これだと巨大なファイルを受け取ったとき、どうしてもクライアント側でずっと待たされるので何とかしたい。

まぁ、用は Windows のファイルコピーなんかみたいに進捗状況を表示できればいいのですが、これって Python 云々じゃなく、JavaScript 等のブラウザ側の処理になるんですよね…若干悩みどころです。

何処かにそういったモジュールありそうなんだけどなぁ~なかなか見当たらないものですな。

ちなみに巨大ファイルを受け取るとき、cgi.FieldStorage() オブジェクトの value プロパティで受け取ったりすると、ファイルの内容をそのまま文字列として受け取ってサーバが悲しいことになるのでヘルプにある方法で受け取りましょう。

本番サーバでやってしまうと 4G のスワップファイルが出来たりして大変なことになるよ!(←やったのかよ…)

No TrackBacks

TrackBack URL: http://denchu.jp/cgi-bin/movabletype/mt-tb.cgi/66

コメントを投稿する