#!/usr/bin/perl # (C) 2000-2003 Midgard Systems Group # Name this view.cgi, put it in your top level photos directory, and # make sure it's executable. $ENV{QUERY_STRING} =~ m|file=([^&]*)&?|c; $file = &unescape($1); $file =~ s|^/+||; $file =~ s|\.\./||gs; unless(-f $file && $file =~ /(jpg|gif|png)$/) { print << 'EOF'; Content-type: text/html Pictures
No file specified.
EOF exit(0); } use Image::Size; print << "EOF"; Content-type: text/html Picture - $file
EOF ($imx, $imy) = imgsize($file); print "\"\"\n"; ($metafile = $file) =~ s!(jpg|gif|png)$!!i; $metafile .= "txt"; if(-f $metafile) { open(F,"<$metafile"); $metadata = join('',); $metadata =~ s|\r?\n|
\n|gs; close(F); print "
\n"; print $metadata,"\n"; print "
\n"; } print << 'EOF';
EOF sub unescape { my($todecode) = @_; $todecode =~ tr/+/ /; # pluses become spaces $todecode =~ s/%([0-9a-fA-F]{2})/pack("c",hex($1))/ge; return $todecode; }