CGI.pmで添付ファイルを送るフォームをつくるの巻
まず 前回の メールフォームを デザイン的に
ファイル添付機能付きメールフォーム にしたいと思います。
その前に 単にファイルを添付してみて
ファイル名と ファイルハンドルを受け取る cgiを作りましょう
アップロードされたファイルは CGI モジュールが勝手に一時的な場所に保存してくれています。
書き込むフォームとしては
いつものスタイルシート'form.css'を使い mail9.cgiを作成します
#!/usr/bin/perl use CGI; $q = new CGI; print $q->header(-charset => 'utf-8'), $q->start_html(-title=>"Example CGI.pm Form", -style=>{'src'=>'form.css'}), $q->h1(' Example CGI.pm Form'), $q->start_div({-class=>"aaa"}), $q->p('これは class="aaa" の部分です'), $q->start_multipart_form(-action=>"mail8.cgi",-method=>'post'), $q->filefield(-name=>'uploaded_file', -default=>'starting value', -size=>50, -maxlength=>80), $q->reset, $q->submit(-name =>'Action', -value =>'送信'), $q->submit(-name =>'Action', -value =>'Scream'), $q->end_multipart_form, $q->end_div, $q->start_div({-id=>"bbb"}), $q->h3('これは id="bbb" の部分です'), $q->end_div, $q->start_div({-class=>"ccc"}), $q->h3('これは class="ccc" の部分です'), $q->end_div, $q->end_html;
適当に なにか 画像ファイルを参照してね
mail8.cgi を作ります
#!/usr/bin/perl use CGI; my $query = CGI->new(); #ファイル名 my $filename = $query->param('uploaded_file'); #ファイルハンドル my $fh = $query->upload('uploaded_file'); print $query->header(-charset=>"utf-8"); print $query->start_html('Mail Form'); print $query->p("ファイルネーム$filename"); print $query->p("ファイルハンドル$fh"); print $query->end_html;