[#40891] 配列をシャッフル — Hideo Konami <konami@...>

小波です。

25 messages 2005/07/01
[#40899] Re: 配列をシャッフル — ktokita <ktokita-p@...> 2005/07/01

時田です

[ruby-list:40936] multipartフォームから受け取ったオブジェクトにstatメソッドでエラー

From: ミーム 林 秀樹 <hayashi@...>
Date: 2005-07-26 05:32:44 UTC
List: ruby-list #40936
林と申します。
multipartフォームから受け取った画像ファイルを、
サイズを確認して、保存する処理をしているのですが、
10KB以下のファイルを送信すると、'stat'に対してNoMethodErrorが
出てしまいます。
10KBより大きなファイルだと正常に処理するので、
なにか仕様的な事でしょうか。
どなたか、ご教授お願い致します。

スクリプトは単純で、

require "cgi"
cgi = CGI.new
file = cgi.params['file'][0]
filesize = file.stat.size
print "Content-Type: text/html\n\n"
print filesize


4行目を処理するときに、10KB以下のファイルだと以下のエラーが出ます。

undefined method `stat' for #<StringIO:0x4060274c> (NoMethodError)


また、上記処理は大きすぎるファイルをアップロードされないように、
サイズチェックをしているのですが、
(サイズが一定以上だと警告メッセージを表示させています)
tempfileオブジェクトとして一旦受け取らないといけないので、
結局サーバーには負担がかかってしまいます。
フォームからバイナリデータを受け取りながら、設定サイズを超えた時点で、
エラー処理に移る方法が採れれば、より安全なのですが、
そのような実装は可能でしょうか。

よろしくお願い致します。



In This Thread

Prev Next