青山です。

On Mon, 9 Oct 2000 05:06:29 +0900,
OMI Toshiaki <omi / tokyo.email.ne.jp> wrote:

> Ruby 1.6.1, Apache/1.3.12, Slackware 7.1.0 と 
> Ruby 1.6.1, Apache/1.3.12, Kondara MNU/Linux 1.1 です。
> クライアントは
> 上記のものと、Windows 95, Windows 2000 で試しました。
> Ruby 1.4.6 では問題なく動作しました。

Apache/1.3.12 (Unix) Debian/GNU mod_ruby/0.2.1 Ruby/1.6.1(2000-10-05)

では大丈夫でした。ちょっと大きなファイルを送ってみても大丈夫のようです
し、どこで引っかかっているんでしょうね。CGI でという事は、Ruby 単体で
も再現しそうですが(というか、[BUG] が出ているので、Ruby 本体の問題でしょ
うし)、次のようなサンプルではどうでしょうか?

$ cat sample.dat | ruby sample.rb


===== sample.rb
#!/usr/local/bin/ruby
require 'cgi'
class CGI
  EOL = "\n"
end
ENV['REQUEST_METHOD'] = 'POST'
ENV['CONTENT_LENGTH'] = FileTest.size?('sample.dat').to_s
ENV['CONTENT_TYPE'] = 'multipart/form-data; boundary=boundary'

upload_file = CGI.new['upload_file'][0]
p upload_file.local_path
p upload_file.original_filename


===== sample.dat
--boundary
Content-Disposition: form-data; name="upload_file"; filename="foo"
Content-Type: text/plain

ここに適当なデータ。前後の空行は必要。

--boundary--


-- 
青山 和光 Wakou Aoyama <wakou / fsinet.or.jp>