perl cgi 按日期显示图片 打不开?
cgi,htm文件在C:\p\cgi-bin目录
images在C:\p\images目录
下面为htm文件
<BODY>
Today's image of the day is:
<IMG SRC="daily_image.cgi">
</BODY>
下面为cgi文件
#!C:\perl\bin\perl.exe -w
use strict;
use CGI qw(:all);
my($imagedir, $day, $jpegs, $error);
$imagedir="../images/";
$error="../error.jpg";
sub display_image{
my($image)=@_;
open(IMAGE, "$image") || exit;
binmode STDOUT; binmode IMAGE;
print <IMAGE>;
close(IMAGE);
exit;
}
print header (-type=>'image/jpeg');
$day=(localtime)[3];
$day=$day-1;
opendir(IMGDIR, $imagedir) || display_image($error);
@jpegs=sort grep(/\.jpg$/, readdir IMGDIR);
closedir(IMGDIR);
my $image="$imagedir/$jpegs[$day]";
$image=$error if ( not defined $jpegs[$day]);
display_image($image);
在线等!!!
答案:你的@jpegs是没有定义的,把最后几行改成如下就可以了:
opendir(IMGDIR, $imagedir) || display_image($error);
my @jpegs=sort grep(/\.jpg$/, readdir IMGDIR);
closedir(IMGDIR);
my $image=(defined($jpegs[$day]))? "$imagedir/$jpegs[$day]" : "$error";
display_image($image);
上一个:我打开php 的php-cgi.exe,为什么出现“无法定位程序输入点OCILobread2于动态连接库OCI.dll 上”?
下一个:如何在windowsXP下运行用c 编写cgi