From: "杉原 透修" Date: 2008-06-26T15:29:40+09:00 Subject: [ruby-list:45140] ruby-1.8.6-p230でのfilename取得について 杉原と申します 先日リリースされた以下のバージョンのrubyを 使用し、開発していたシステムの動作検証を行ったところ ruby側のバグらしき現象に見舞われたため投稿しました。 ・ruby-1.8.5-p231.tar.gz ・ruby-1.8.6-p230.tar.gz 内容はファイルアップロード処理の際、正常にファイル名称 を取得することが出来ないというものです。 ruby-1.8.6-p230のcgi.rbを確認したところ、1041行目の正規表現 が変更されていることが原因と思われます。 ---------------------------------------------------------------------- /Content-Disposition:.* filename=(?:"((?:\\.|[^\"\s])*)"|([^;\s]*))/ni.match(head) ---------------------------------------------------------------------- 発生した現象の詳細は以下の通りです。 (1)InternetExplorerでファイルアップロードした場合  ・ファイルのパスに半角スペースが含まれていると正確なファイル名が取得出来ない。  ・半角スペースを含むファイル名の場合、正確なファイル名が取得出来ない。   (2)FireFoxでファイルアップロード  ・半角スペースを含むファイル名の場合、正確なファイル名が取得出来ない。 スペースの認識に誤りがあるようで、WindowsXPのデスクトップに あるファイルをアップロードするとfilenameは全て「Documents」 になってしまいます。 以下のようにファイルのパスにスペースが含まれることが原因と思われます。 C:\Documents and Settings\.. ちなみにrubyを前のバージョンに戻すと当現象は発生しません。 何のために修正された箇所かがよくわからないのですが、お気づきの点等あれば アドバイスいただけるようお願いします。