From: "堀川 久" Date: 2003-07-14T20:56:16+09:00 Subject: [ruby-list:37874] Re: enctype="multipart/form-data"を指定するとcgiライブラリがエラー こんにちは。 Yukihiro Matsumoto wrote in <1057618735.782262.9712.nullmailer@picachu.netlab.jp> >|formタグにenctype="multipart/form-data"を設定すると、Value#initialize >|で例外が発生します。 >| >|QueryExtension#[]でTempfileの手当てをしていないのが原因のようです。 >|valueが文字列でない場合はそのままそれを返すようにするのがいいように思 >|います。 > >Narfではmultipartのデータ全部はtempfileにならないような仕掛 >けを持っているそうです。これを本家に取り込めませんかね。 narfは試したことがないので、とりあえず今のCGIクラスの動作に基づいて考 えます。一番簡単な修正は、こんな感じでしょうか(1.6との互換性は差し当 たり考えません)。 class CGI module QueryExtension def [](key) @params[key].first || "" end end end しかし、multipartデータのときは、Tempfileオブジェクトか""を返してしま います。これは相当奇妙です。 multipartかどうかに関わらず、コントロール値がないときはnilを返した方が いいのではないでしょうか。 -- HORIKAWA Hisashi (in Kanji: 堀川 久) Netsphere Laboratories http://www.nslabs.jp/