Diff for /loncom/cgi/thumbnail.gif between versions 1.1 and 1.2

version 1.1, 2002/05/29 20:57:16 version 1.2, 2002/05/29 22:12:11
Line 33 Line 33
   
 # Example usage: /cgi-bin/thumbnail.gif?url=...  # Example usage: /cgi-bin/thumbnail.gif?url=...
   
   
 use strict;  use strict;
   
   sub filelocation {
     my ($dir,$file) = @_;
     my $location;
     $file=~ s/^\s*(\S+)\s*$/$1/; ## strip off leading and trailing spaces
     if ($file=~m:^/~:) { # is a contruction space reference
       $location = $file;
       $location =~ s:/~(.*?)/(.*):/home/$1/public_html/$2:;
     } else {
       $file=~s/\/home\/httpd\/html//;
       $file=~s:^/*res::;
       if ( !( $file =~ m:^/:) ) {
         $location = $dir. '/'.$file;
       } else {
         $location = '/home/httpd/html/res'.$file;
       }
     }
     $location=~s://+:/:g; # remove duplicate /
     while ($location=~m:/\.\./:) {$location=~ s:/[^/]+/\.\./:/:g;} #remove dir/..
     return $location;
   }
   
 $|=1;   # Autoflush after each print/write  $|=1;   # Autoflush after each print/write
 foreach (split(/&/,$ENV{'QUERY_STRING'})) {  foreach (split(/&/,$ENV{'QUERY_STRING'})) {
     my ($name, $value) = split(/=/,$_);      my ($name, $value) = split(/=/,$_);
Line 45  foreach (split(/&/,$ENV{'QUERY_STRING'}) Line 67  foreach (split(/&/,$ENV{'QUERY_STRING'})
     }      }
 }  }
   
   
   my $ofn=&filelocation('',$ENV{'form.url'});
   my $fn=$ofn.'.thumbnail';
   
   my $exists=1;
   my $generate=0;
   
   if (-e $ofn) {
      my ($dev,$ino,$mode,$nlink,
          $uid,$gid,$rdev,$size,
          $atime,$omtime,$ctime,
          $blksize,$blocks)=stat($ofn);
      if (-e $fn) {
          my ($dev,$ino,$mode,$nlink,
              $uid,$gid,$rdev,$size,
              $atime,$mtime,$ctime,
              $blksize,$blocks)=stat($fn);
          if ($omtime>$mtime) { $generate=1; }
      } else {
          $generate=1;
      }
   } else {
       $exists=0;
   }
   
   # FIXME: generate thumbnail instead
   if ($generate) { $exists=0; }
   
   
   unless ($exists) {
      $fn='/home/httpd/html/res/adm/pages/nothumb.gif';
   }
   
 # Tell the server we are sending a gif graphic  # Tell the server we are sending a gif graphic
 print <<END;  print <<END;
 Content-type: image/gif  Content-type: image/gif
   
 END  END
   
 my $fn='/home/httpd/html/res/adm/pages/nothumb.gif';  
 open (IN,$fn);  open (IN,$fn);
 binmode(STDOUT);  binmode(STDOUT);
 print join('',<IN>); # output image  print join('',<IN>); # output image

Removed from v.1.1  
changed lines
  Added in v.1.2


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>