这是为什么的Perl CGI脚本未能正确上传图片?(Why is this Perl CGI scr

2019-10-19 17:20发布

我有这样的代码:

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;

那么,我真为调整图像。 我的问题是图像不上传。 我有$文件名的名称的空文件。 我省略调整相关的部分,我仍然有代码。 所以我敢肯定的是,文件没有被正确上传。 我失去了任何库? 任何帮助吗?PLZ ..

Answer 1:

你需要改变

my $upload_filehandle =$query->param("img");

my $upload_filehandle =$query->upload("img");

根据本教程 。

希望能帮助到你。



Answer 2:

我想通了,为什么:正如指出的CGI.pm文档 ,表单的编码类型必须multipart/form-data 。 当我补充说,一切正常。



Answer 3:

加入这个 “ENCTYPE = '的multipart / form-data的'”,而不是编码。

> <form action="/post.pl" method="post"  ENCTYPE='multipart/form-data'>

和它的工作



文章来源: Why is this Perl CGI script failing to upload images correctly?