0
我已經搜遍了互聯網尋找可用於允許我的網站用戶上傳照片的代碼。我已經嘗試了一些開放源碼的Perl代碼,所有結果都一樣:上傳到我的服務器的新文件是空白的!Perl上傳代碼葉空白上傳文件
下面是代碼:
首先,對於文件提出了一個網頁:
<form name="input" action="/cgi-bin/upload.pl" method="get" ENCTYPE="multipart/form-data">
Upload Photo:<input type="file" name="pic" /><BR>
<input type="submit" name="Submit" value="Submit Form" />
的上傳代碼現在:
#!/usr/bin/perl
use CGI;
my $cgi = new CGI;
my $dir = "/home/mydomain/www/wwwboard/uploads";
my $file = $cgi->param('pic');
my $filename = $file;
$filename =~ s/^.*\\//;
$filename =~ s/^.*\///;
$filename =~ s/\s /_/g;
open(LOCAL, ">", "$dir/$filename") or die $!;
while(<$file>) {
binmode LOCAL;
print LOCAL $_;
}
close(LOCAL);
print "Content-type: text/html\n\n";
print "$file has been successfully uploaded... thank you.\n";
我不是一個Perl的專家,但在我看來,問題在於變量$ file = $ cgi-> param('pic');僅從用戶的計算機中獲取文件句柄的基本名稱。例如,當我嘗試上傳一個名爲「/home/nick/Pictures/photo.JPG」的文件時,我從服務器獲得的消息顯示「photo.JPG已成功上傳......謝謝。」。也許這不是問題,我不知道...
我使用Firefox和Chrome獲得相同的結果。上傳文件夾的權限爲777.
我知道這段代碼的安全性很弱。我可以稍後再談。現在我只想看看它的工作。
搜索搜索搜索http://stackoverflow.com/questions/7770176/perl-script-for-file-upload – searcher