ファイルのアップロード |
Microsoft IISおよびPWSでは、Posting Acceptorというモジュールを追加する必要があるかもしれません。
詳しくは http://www.microsoft.com/mscorp/worldwide/japan/support/kb/articles/j030/9/91.htm
を参考にしてください。
#!/usr/bin/perl # # upload.cgi # # (C)1999 Kaoru Fujita # use lib './lib'; use CGI_Lite; require 'util.pl'; # # 定数 # $Title = 'ファイルのアップロード サンプル'; $Temp = './tmp'; $Platform = 'Unix'; $BUFSZ = 2048; $CharSet = 'EUC'; $upload = new CGI_Lite; # アップロード先 $upload->set_directory($Temp) or exitError("ディレクトリ $Temp がオープンできません。"); # プラットフォームの設定 $upload->set_platform($Platform); # バッファーサイズの設定 $upload->set_buffer_size ($BUFSZ); # ファイル名の変換 $filename = $upload->filter_filename(\&convName); $upload->close_all_files; # フォームデータの解析 %data = $upload->parse_form_data; if ($upload->is_error()) { # アップロードのエラー exitError($upload->get_error_message()); } print <<END_OF_HTML; Content-type: text/html <HTML> <HEAD> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=$CharSet"> <TITLE>$Title</TITLE> </HEAD> <BODY> アップロードに成功しました。 </BODY> </HTML> END_OF_HTML exit(0); sub convName { local($name) = shift; $name =~ tr/A-Z/a-z/; # 大文字から小文字へ変換 $name =~ s/(?:%20)+/_/g; # 空白文字を_に変換 $name =~ s/%[\da-fA-F]{2}//g; # %xx を削除 return ($name); } #--End of upload.cgi |
<HTML> <HEAD> <TITILE>ファイルのアップロード</TITLE> </HEAD> <BODY> <FORM ACTION="/cgi-bin/upload.cgi" ENCTYPE="multipart/form-data" METHOD="POST"> ファイル: <INPUT TYPE="file" NAME="File" SIZE="32"><BR> <INPUT TYPE="submit" VALUE="送信"> </FORM> </BODY> </HTML> |
cgi-bin/upload.cgi
cgi-bin/lib/CGI_Lite.pm
docs/Samples/upload.html