当前位置:编程学习 > CGI >>

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

更多图片编程知识:
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,