• ベストアンサー

画像のUpload

CGIフォームでいろいろな項目をWebサーバー上にCSVで保存して使っています。 今は項目全てテキストなのですが、今度はGIFやJPGデータをCGIフォームでローカルPCのファイルを指定して、Webサーバーにアップロードして保存することは出来るでしょうか。 そのデータをどうするかというと後で 例えば、商品名、特徴、単価などのテキストデータとともに商品の写真なんかも載せるような感じに使いたいのです。 ちなみにPerlです。結構初心者に近いので(CGIフォームからサーバーにCSV保存くらいは自分でコーディングしましたが・・・)あんまり難しい解説は理解できる自信なしです。

  • Perl
  • 回答数2
  • ありがとう数1

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

  • ベストアンサー
回答No.2

CGI.pmはPerl5の標準モジュールなので、お使いのサーバのPerlのバージョンが5以上であれば最初から使える状態だと思います。 このあたりも参考になると思います。 http://www.harukaze.net/~mishima/perl/module/upload_by_CGI_pm.html CGI.pmを使えないのであれば、下記のようなcgi-lib.plを使う方法がよろしいかと。

参考URL:
http://amateras.sourceforge.jp/cgi-bin/fswiki/wiki.cgi/free?page=cgi-lib.pl
souta_n
質問者

お礼

>CGI.pmを使えないのであれば、下記のようなcgi-lib.plを使う方法がよろしいかと。 cgi-lib.plは、現在テキスト情報のアップロードに使っていますので、なんとなくしっくりきます。こちらの方法でトライしてみます。ありがとうございました。

souta_n
質問者

補足

参考URLの記述そのままでファイルサイズ153KBのGIFファイルで実験してみましたら、 「cgi-lib.pl: Request to receive too much data: 153345 bytes 」 と表示されUploadされませんでした。 でも、とりあえずここまででも大きな収穫です。 とりあえず、この後は別の質問を上げます。 まずはflowermazeさん、ありがとうございました。 ポイントをどうぞ・・・

その他の回答 (1)

  • ceita
  • ベストアンサー率24% (304/1218)
回答No.1

http://www.i-say.net/cgi/tips_view.php3?id=9 辺りが参考になるでしょうか? 画像BBSのようなスクリプトを参考にすると良いかもしれません。 私でしたら、 画像は参考にした方法でアップロードして、 CSVにはその画像のファイル名を格納しておいて、 表示するときにはHTMLにそのファイル名を入れてあげるようにすると 思います。

souta_n
質問者

補足

私の要求している内容はこれだと思います。ありがとうございます。 ただ、このサイトの利用方法がよくわかりません。 「CGI.pmをここでは利用しています。」ということですがこのモジュールはどこから入手したらよいのでしょう。 また、Perlのコーディングの中のコメント文の「#インスタンスの生成(p102参照)」のp102はこのサイトのどこなんでしょう? >表示するときにはHTMLにそのファイル名を入れてあげるようにすると思います。 私もそうしたいと思っています。

関連するQ&A

  • 画像ファイルのサイズ変更

    CGI(PERL)を使用して、画像データ(JPEG,GIFなど)のサイズ(ファイルサイズも変わるかな。)を変更して,サーバーに保存したいと考えています。どなたかヒントだけでも,お願いします。

  • アップロードされてきた画像ファイル

    フォームからアップロードされてきた画像ファイルを、適当なファイル名を付けてJPGあるいはGIFの拡張子で保存し、HTMLファイルで保存した画像を一覧表示させようというCGIスクリプトを作りたいと考えています。 <FORM action="xxxx.cgi" method="post" enctype="multipart/form-data"> <INPUT type="file" name="gazo"> <INPUT type="submit"> </FORM> とこんな具合のフォームから画像ファイル(JPGやGIF)をアップロードした時、 受け手のxxxx.cgiでは、この画像ファイルのデータをどのように受けたらよいのでしょうか? cgi-lib.plを読み込んで、$in{'gazo'} というような形で画像ファイルのデータを受け取ればよいのでしょうか?

    • ベストアンサー
    • CGI
  • フォームからアップロードされた画像ファイルの処理

    フォームからアップロードされてきた画像ファイルを、適当なファイル名を付けてJPGあるいはGIFの拡張子で保存し、HTMLファイルで保存した画像を一覧表示させようというCGIスクリプトを作りたいと考えています。 質問1 <FORM action="xxxx.cgi" method="post" enctype="multipart/form-data"> <INPUT type="file" name="gazo"> <INPUT type="submit"> </FORM> とこんな具合のフォームから画像ファイル(JPGやGIF)をアップロードした時、 受け手のxxxx.cgiでは、この画像ファイルのデータをどのように受けたらよいのでしょうか? read(STDIN,$_,$ENV{'CONTENT_LENGTH'});としたり、 あるいは cgi-lib.plを読み込んで、$in{'gazo'} というような形で画像ファイルのデータを受け取ればよいのでしょうか? 質問2 画像ファイルを受け取ったとして、フォームから送られてきた画像ファイルがJPGなのかGIFなのかを判別することは可能でしょうか? 可能ならば、判別するためのスクリプトはどんなものが考えられるでしょうか? (フォームから送られてくる画像ファイルのデータの何をチェックすれば、JPGかGIFかを判別できるのでしょうか?) もしご回答頂ける方がおられればご教授ください。よろしくお願いします。 なお、「既存のスクリプトを利用しなさい」というような回答やアドバイスならば不要でございます。

    • ベストアンサー
    • Perl
  • 画像アップロード時の条件分岐

    HTMLフォームでmultipart/form-dataによりPerlCGIのcgi-lib.plで値を取得するやり方で画像ファイルをWebサーバーのフォルダにアップロードします。 その際例えば600KBより大きければ、「画像が大きすぎます。600KB以下のデータに変更して再度実行してください」というHTMLメッセージを、600KB以下なら保存する、という条件分岐はどう書いたら良いでしょうか? またCGIで判断させるとしたら一旦データを取り込んでから判断するわけですから、ファイルアップロードが実行された後の処理という事で時間がかかりそうなので、ひょっとすると一般的にはJavascriptか何かでHTML側で判断して600KB超のデータなら、そのデータは送らないみたいなことをするのかも・・・もしそうならその記述も教えてください? ちなみにPerlもJavaScriptも初心者レベルですのでお手柔らかな解答お願いします。

    • ベストアンサー
    • Perl
  • csvを使った画像データの保存と表示

    お世話になっております.ご教授いただけると助かります. データーベースの代わりにcsvを利用します. phpのバージョンは5を使っています. 入力用画面としてtouroku.phpを作成します. 内容は画像の説明(text)と画像データ(jpg)を指定するものです. 送信をするとcsvファイル(sample.csv)にデーターが保存されます. 画像データはPCの上にあるjpgをサーバの決められたフォルダにアップロードします. 続いてhyouzi.phpで検索を行います. sample.csvに保存されている情報から結果として説明と画像を表示します. textをcsvに保存して参照・編集はできております. 現在jpgの保存がうまくできません.このため参照・編集もできません. 参考としてtextとjpgをcsvに保存するサンプルを探しております. よろしくお願いいたします.

    • ベストアンサー
    • PHP
  • Ajax⇒CGI

    JavaScriptは結構知ってますが、 AjaxとPerlに関しては初心者のものです。 早速ですが質問です。 Ajaxで送信したデータをCGI(Perl)で処理して、 サーバーのテキストに保存する方法が良く分かりません。 サーバーはCGIを許可しているところを使っています。 どなたか詳しい方、ご教授お願いします!

  • データベース検索フォーム作成

    こんにちは、よろしくお願いします。 タイトルの通りデータベース検索フォームなるものの作成を考えているのですが、何かよい案、もしくはサンプルのURLありましたら教えていただけないでしょうか。 【概要】 index.html 項目A(セレクト形式) 項目B(テキスト形式) 項目C(テキスト形式) 項目D(テキスト形式) にキーワードを入力(何も入力されないこともありうる)。 SELECTEDはALLなので、 項目B以降に何も入力されなければ全ての情報が表示。 検索対象データベースはCSVでそれぞれ 項目A,項目B,項目C,項目D のような感じで記述(test.csv)。 キーワードとデータベースでマッチしたものを表示させたいです(AND条件)。 index.htmlとデータベースは作成済み。 ボタンを押した移行のCGIの案を探しています。 webサーバー・・・HP-UX web・・・IE CGI開発言語・・・Perl 開発端末・・・windows2000(Tera Term 使用) 以上、よろしくお願いいたします。

    • ベストアンサー
    • CGI
  • 携帯で撮影した画像をサーバーにアップロードしたい【iアプリ→PHP】

    iアプリ携帯で撮影した画像をサーバーにアップロードし、 アップロードした画像をPHPでサーバーに保存したいと考えています 自分なりにネットや書籍を調べたのですが  ・iアプリで画像をアップロードしcgiをつかってサーバーに保存  ・HTMLで画像をアップロードし、 PHPをつかってサーバーに保存 は情報(サンプルコード)はあるのですが、 iアプリ→PHPの方法(コーディング)がわかりません 特に、PHPがアップロードした画像データを取得する方法が わかりません HTMLからPHPを呼んだ場合は「$_FILES」を使用するのですがiアプリの場合はどう実現したらいいのでしょうか? ご存知の方がいらっしゃいましたら是非お願いいたします

    • 締切済み
    • PHP
  • Windowsサーバ+Perl +アプリ実行は可能?

    Perlでコマンドを実行したいとき、 Linux/Unixサーバのなら system("コマンド名"); と、できるはずですが、 Windowsサーバ+Perlの場合、サーバにインストールされている プログラム/アプリケーションを実行したりすることは可能でしょうか。 具体的なイメージは ユーザーがブラウザからアクセスすると CGIは、サーバ側にインストールされているExcelを起動して マクロを実行、データをCSV形式ファイルに保存。 CGIは保存したCSV形式のファイルを展開し ブラウザ上で表示。 ということは可能ですか? もし可能ならPerlの書式を教えていただければ うれしいですー。

    • ベストアンサー
    • CGI
  • 複数のCSVを一度にダウンロード

    いつもお世話になります。 WebサーバーのCSVをダウンロードするのに次のようなCCGIを使っています。 ***************************************** #! /usr/bin/perl open FH, "./data.csv"; print <<__EOH__; Content-Type: text/download; name="data.csv" Content-Disposition: inline; filename="data.csv" __EOH__ print <FH>; close FH; ***************************************** 1つだけならこれでOKなんですが、例えばdata1.csv、data2.csv、data3.csvという3つのCSVをダウンロードさせるにはどのようにコーディングすればよいのでしょう?

    • ベストアンサー
    • Perl

専門家に質問してみよう