• ベストアンサー

画像をアップロードするプログラム

つい最近Perlの勉強をはじめて、とりあえずテキストデータのファイル入出力するところまで出来ました。そこでJPG画像なんかもUploadしてテキストファイル側はその画像のあるURLを保存しておき、後でHTMLに書き出すときにimg src=そのURLとすれば画像つきの結果Webページが作成できるだろうとまでは思ったのですが、 さてPerlでローカルコンピュータの任意のフォルダの中にあるJPGファイルを指定して、実行ボタンをクリックすると、Webサーバーの任意のフォルダーにアップロードするシステムはどう作ったら良いのかわかりません。 良くオークションなんかの出品で、画像を指定してここをクリック!!とかすると、出品物の内容書き以外に写真も添付できるやつです。実際にあるシステムですから多分できるんだろうとは思うのですが、Webサーバーにログインするのにはユーザー名やパスワードが当然いるはずですし、そのログインのユーザー名やパスワードをプログラム中に記述しておくのは結構あぶない話でしょうし。みんなどうしているのだろう? ご指導、参考URLなど宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • chie65536
  • ベストアンサー率41% (2512/6032)
回答No.1

教えてgooなどで、テキストボックスに質問や回答と書くと、その内容がサイトにアップロードされるのと同じく、画像も同じような手順でアップロードされます。 サーバーに、テキスト(本文)と画像を受け取るCGIスクリプトupload.cgiを置き、以下のような記述をしたページを設置すると、 <FORM action="upload.cgi" method="POST" enctype="multipart/form-data"> 本文:<TEXTAREA name=comment wrap=soft></TEXTAREA><BR> 画像:<INPUT type=file name=uploadfile><BR> <INPUT type=submit value="送信"> </FORM> ブラウザからサーバー上のCGIスクリプトupload.cgiに、本文と画像ファイルそのものがまとめて送られて来ます(FORMタグの「enctype="multipart/form-data"」が「まとめて送って」と言う指定です。データは、メールに画像を添付したような感じで、本文と画像データがまとめられて送られて来ます) CGIスクリプトupload.cgiでは、まとめて送られて来た本文と画像ファイルを切り出し、サーバー上の任意のフォルダに書き出す事で、アップロードを実現します。

souta_n
質問者

お礼

すごく親切な解説付きコードありがとうございます。 なるほど、テキストデータと一緒ですね、なんとなくバイナリファイルとかの場合つい特別なことをしないといけないような気になってしまってました。ユーザー名とかパスワードとか、ちょっと考えすぎでした。

その他の回答 (1)

  • master-3rd
  • ベストアンサー率35% (582/1641)
回答No.2

アップロードCGIです。 (TXTなのでもしかしたら消されることを考えて…) 「とほほ wwwupl」で検索すると出てくると思います。 あと、このCGIが参考になるかな? http://www.lira.co.jp/t-room/re_cgi/index.html ここの「sitehistory ver3」

souta_n
質問者

お礼

「とほほ~」はすごいですね。日ごろ結構参考にしているんですけど、こんなページあったんですね。いったいあのサイトは何ページくらいあるんだろう? 参考になります。ありがとうございました。

専門家に質問してみよう