2008年10月23日木曜日

 

【Perl】CGIクラス - CGI.pm

現在、PerlでCGIを利用するときによく使われるライブラリは、Perl5のオブジェクト指向スタイルでCGIを書ける、CGI.pmです。
以前の主流は、Perl4、5で動作するcgi-lib.pl。ポストとかクエリを配列に直してくれたりするスクリプトが入ってるとか。

Part1 正しいPerl/CGIの書き方(3) - ITpro
PerlとCGI ※「CGI.pmとテンプレートを組み合わせる」参照
フォームの開始と終了

start_form()または新しいメソッドstart_multipart_form()。
※参考:フォームの開始と終了

print $query->start_form(-method=>$method,
                                        -action=>$action,
                                        -enctype=>$encoding);
  /*  フォーム内容  */
print $query->endform;
#  または
print $query->start_form($method,$action,$encoding);
  /*  フォーム内容  */
print $query->endform;
ファイル・アップロード・フィールド

filefield()を使う。
※参考:ファイル・アップロード・フィールドの作成cgi(perl)でアップロードされたファイルを保存する方法について - 教えて!goo

 title="CGI - 簡単なCGI(Common Gateway Interface)クラス"
print $query->filefield(-name=>'uploaded_file',
                                    -default=>'starting value',
                                    -size=>50,
                                    -maxlength=>80);
# または
print $query->filefield('uploaded_file','starting value',50,80);

ファイル名の取得は以下の様に。ブラウザ依存。

$filename = $query->param('uploaded_file');

アップしたファイルを保存。ファイル情報の取得はuploadInfo()

# ファイル取得
my $fH = $query->upload('filename');
# MIMEタイプ取得
my $mimetype = $query->uploadInfo($fH)->{'Content-Type'};
# ファイル保存
open (OUT, ">Savefile") || die "Can't open Savefile!";
binmode (OUT);
while(read($fH, $buffer, 1024)){
    print OUT $buffer;
}

ラベル:


コメント: コメントを投稿

登録 コメントの投稿 [Atom]



この投稿へのリンク:

リンクを作成



<< ホーム

This page is powered by Blogger. Isn't yours?

登録 投稿 [Atom]

Google