localhost サーバー (Linux プラットフォームの Apache 2.2) にファイルをアップロードしようとしていますが、Internal Server Error 500が発生します。
サーバーは正常に動作しています (CGI スクリプトを使用してすべての環境変数を出力できるため)、何度もグーグル検索しても道がわかりません。
これは私のHTMLコードです:
<FORM ACTION="http://localhost/cgi-bin/upload.cgi" METHOD="post" ENCTYPE="multipart/form-data">
<INPUT TYPE="file" NAME="photo">
<INPUT TYPE="submit" NAME="Submit" VALUE="Submit Form">
</FORM>
これは、このファイルに完全な許可を与えた /var/www/cgi-bin に配置されている私の cgi スクリプトです。
#!/usr/bin/perl -w
use CGI;
$upload_dir = "/home/myuser/Desktop/upload";
$query = new CGI;
$filename = $query->param("photo");
$filename =~ s/.*[\/\\](.*)/$1/;
$upload_filehandle = $query->upload("photo");
open UPLOADFILE, ">$upload_dir/$filename";
while ( <$upload_filehandle> )
{
print UPLOADFILE;
}
close UPLOADFILE;
print $query->header ();
print <<END_HTML;
<HTML>
<HEAD>
<TITLE>Thanks!</TITLE>
</HEAD>
<BODY>
<P>Thanks for uploading your photo!</P>
<P>Your photo:</P>
<img src="/home/myuser/Desktop/upload/$filename" border="0">
</BODY>
</HTML>
上記の簡単な問題を解決するためのヒントを誰か教えてください。ありがとう。