我正在尝试在 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>
这是我的 cgi 脚本,它被放置在 /var/www/cgi-bin 中,我已授予此文件的完全权限。
#!/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>
请有人给我一个提示来解决上述简单问题。谢谢。