我有這樣的代碼:爲什麼這個Perl CGI腳本無法正確上傳圖片?
use CGI;
use File::Basename;
use Image::Magick;
use Time::HiRes qw(gettimeofday);
my $query = new CGI;
my $upload_dir = "../images"; #location on our server
my $filename=$query->param("img");
my $timestamp = int (gettimeofday * 1000);
my ($name, $path, $extension) = fileparse ($filename, '\..*');
$filename = $name ."_".$timestamp. $extension;
#upload the image
my $upload_filehandle =$query->param("img");
open (UPLOADFILE, ">$upload_dir/$filename") or die "$!";
binmode UPLOADFILE;
while (<$upload_filehandle>)
{
print UPLOADFILE;
}
close UPLOADFILE;
那我調整了圖像。我的問題是圖像沒有上傳。我有一個名爲$ filename的空文件。我省略了與調整大小有關的部分,我仍然有代碼。所以我確定該文件沒有被正確上傳。我錯過任何圖書館嗎? 任何幫助嗎?PLZ ..
一些建議:(1)避免間接對象符號。 I.e .:使用'CGI-> new'。 (2)除非已明確更改爲已知目錄,否則不要使用相對路徑進行上載位置。 (3)一些使用find $ $ filename =「$ {name} _ $ timestamp $ extension」;''甚至'$ filename = sprintf'%s_%d's',$ name,$ timestamp,$ extension;''更具可讀性。 –