初心者だけどPerlが大好き

コードが世界を変える!

CGI.pmで画像をサーバーにバイナリデータで保存したり、それを画像で復元する

ついでなので CGI.pmの添付フォームで送った画像データをバイナリデータとして(文字列で)保存します。
それは mail.txt と名付けます。
そして 違うCGIのコードから 画像として呼び出す ということを します。

フォームは いつものフォームを使ってね。もう 使いまわしでいくのだ
飛ばす先は mail21.cgi としてくださいませ。

mail21.cgi のコード


#!/usr/bin/perl   #さくらレンタルサーバーでのパス
use CGI;
use Jcode;
use MIME::Base64;
my $q = CGI->new();
$name= $q->param('name');
$email= $q->param('email');
$subject= $q->param('subject');
$comments= $q->param('comments');
$mailto='trinity777@yahow.co.jp';
# ファイルネーム取得
$outfile="mail.txt";
my $filename = $q->param('uploaded_file');
my $fh = $q->upload('uploaded_file');
binmode $fh;
$outfile="mail.txt";
open (OUT, ">$outfile") or die "$!";
while (<$fh>) {
print OUT $_;
}

close $fh;
close (OUT);
print $q->header(-charset => 'utf-8'),
$q->start_html('Mail Form'),
$q->h1("ファイルネーム$filename"),
$q->h2("ファイルハンドル$fh"),
$q->end_html;



復元するのは mail22.cgi としてください

http://あなたのURL/mail22.cgi で呼び出すと 画像がでてきます


#!/usr/bin/perl #さくらレンタルサーバーでのパス
print "Content-type: text/html\n\n";
$file="mail.txt";
open (IN, $file) or die "$!";
while () {
print $_;
}
close (IN);