rubyのCGIにてnet/ftpを使い、ファイルをアップロードするスクリプトを

作成しております。

htmlフォームからファイルをアップロードしたいのですが、ファイルが存在しないというエラーになります。

このような場合、どのように修正をすればいいのでしょうか、教えてください。

----- ソースコード抜粋(CGI)
require 'net/ftp'
$URL = "http://xxxxx.coreserver.jp/files/"

ftp = Net::FTP.new
ftp.connect( "xxxxxx.coreserver.jp" )
ftp.login( "user", "pass" )
ftp.chdir( "/public_html/files" )
ftp.put( cgi['file_name'] )

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2009/02/22 23:58:06
  • 終了:2009/03/02 00:00:02

回答(1件)

id:garyo No.1

garyo回答回数1782ベストアンサー獲得回数962009/02/24 00:28:18

ポイント60pt

このCGIはサーバーで動いているわけでしょうか・・・


[ローカルPC]---[サーバーPC]という接続だとします。


以下の記述から、file_nameをサーバーに渡そうとしていると思われます。

ftp.put( cgi['file_name'] )

↑上記CGIが実行されるのは「サーバーPC」です。

もしかすると「'file_name'」で渡しているのはローカルPCのファイル名ではないでしょうか?

その場合であれば当然、サーバーにはローカルPCのファイルは無いので「ファイルが存在しないというエラー」になると思います。


以下でファイルアップローダーのソースを公開されているようなので参考にしてみてください。

http://fenrir.naruoka.org/archives/000643.html

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません