前一篇Blog提到浏览照片的方法,在实际运行过程中最多的意见是:不能浏览前一张照片。也就是浏览指针不能倒回去。
当天就解决了这个问题,在页面中加入向前浏览和向后浏览的按钮,通过CGI参数判断是向前还是向后浏览。
具体代码如下:
#!/usr/bin/perl
print "Content-type: text/html\n\n";
if($ENV{'REQUEST_METHOD'}eq"POST"){
read(STDIN,$buffer,$ENV{'CONTENT_LENGTH'});
}elsif($ENV{'REQUEST_METHOD'}eq"GET"){
$buffer=$ENV{'QUERY_STIRNG'};
}
@pairs=split(/&/,$buffer);
foreach $pair(@pairs){
($name,$value)=split(/=/,$pair);
$value=~tr/+//;
$value=~s/%([a-f A-F 0-9][a-f A-f 0-9])/pack("C",hex($1))/eg;
$FORM{$name}=$value;}
my $ago=$FORM{'ago'};
my $next=$FORM{'next'};
# 如果没点按钮就刷新页面,默认选择后一张照片
if (!$ago and !$next)
{
$next = '后一张照片';
}
# 图片选择
my @pics = glob("/var/www/tmp/pic/*.JPG");
my $maxpic = $#pics;
open (f1,"log/pic.log");
my $i = ;
close f1;
if ($next)
{
$i++;
$pics[$i] =~s/\/var\/www(.*)//;
$picpath = $1;
if ($i > $maxpic) { $i = $i - $maxpic; }
}
if ($ago eq '前一张照片')
{
$i = $i-1;
$pics[$i] =~s/\/var\/www(.*)//;
$picpath = $1;
if ($i < 0) {$i = $i + $maxpic; }
}
# 保存指针
open (f1,">log/pic.log");
print f1 $i;
close f1;
print <
说明:
1. 照片信息:(No=$i $pics[$i])
2. 在照片上点右键,选“另存为”可以保存下来。
HT
部分avi视频转成了flv格式,通过服务器在线播放可以在页面中加入下面的代码:
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/21129783/viewspace-672563/ ,如需转载,请注明出处,否则将追究法律责任。