dポイントプレゼントキャンペーン実施中!

お世話になります。
プログラミング初心者、WindowsXP、Ruby 1.8.5 使用。
http://jp.rubyist.net/magazine/?0013-BundledLibr …
上記のページにある例を真似て、Webサーバ上のファイルアップローダーCGIにリクエストを出すスクリプト(のつもり)を書いてみました。以下自分で書いたコード:

require 'net/http'

Net::HTTP.start('www.honyara.com',80) {|http|
res = http.post('/up.html/upload.cgi',"upload=C:\\test.txt")
puts res.body
}

CGIはPerlで書かれています。これは自分で書いたものではなくてやはり他サイトのパクリなんでorz 自分ではよく理解できてません。
関係あるかどうかわかりませんがCGIのソースではファイルを取得するのにparam()を使っています。upload()ではなくて。
HTMLのCGI部分は次の通りです:

<form method="post" action="upload.cgi" ENCTYPE="multipart/form-data">File Name<input type="file" name="upload" size="80">
<input type="submit" value="アップロード">

スクリプトを実行すると実際にサーバ側の指定のフォルダにtest.txtが作成されるが中身は空っぽです。もちろんアップしようとしてるファイルは中身があります。なぜ上手くいかないんでしょうか。そのヒントだけでもいただければ幸いです。

A 回答 (1件)

「はじめよう Ruby on Rails(アスキー)」を見ると、ファイルアップロードのサンプルがありました。



それを見ると、file_fieldメソッドと、:multipart => true という指定などがされています。

そして、Perlで書かれたソースをよく理解できずにパクッても普通は、正常動作しないと思います。

本書を立ち読みするなり、購入されればいいかも?ざっと目を通した限りでは、購入する価値のある本だと思いました。
    • good
    • 0
この回答へのお礼

回答ありがとうございますm(_ _)m
file_field、multipart=>true、ググってみたらこれはサーバ側の話ですね。
田舎なもので近所の本屋には紹介された本がありませんでした。今度都会へ出たときチェックしてみますね。Rubyによるアップローダーはネットで見つけたので作って試してみます。
>Perlで書かれたソースをよく理解できずにパクッても普通は、正常動作しないと思います。
仰るとおりですorz 「よくわからないものを使うから…」こうなるんですね。一応ブラウザから正常にアップできたので、ならファイルのパスをpostしてやれば出来るんじゃないかって思ったんですが、上手くいきませんでした。もっと調べてみることにします。

お礼日時:2007/06/27 11:59

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!