我想上傳本地主機服務器上的文件(在Linux平臺上的Apache 2.2),但我得到內部服務器錯誤500。通過perl CGI腳本上傳文件
服務器運行正常(因爲我能夠通過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>
請有人給我一個提示,以解決上述簡單的問題。謝謝。
從[堆棧溢出Perl常見問題](http://stackoverflow.com/questions/tagged/perl?sort=faq):[我如何解決我的Perl CGI腳本?](http://stackoverflow.com/questions/2165022/how-can-i-troubleshoot-my-perl-cgi-script) – daxim