|
Posted by robert on 04/25/06 22:00
"The Numerator" <alvin4jesus@gmail.com> wrote in message
news:1145849539.405551.3470@t31g2000cwb.googlegroups.com...
|I have a folder full with images, and for security reasons I don't want
| anyone to know where the folder is. So, to call images, I know there is
| a way to call like a PHP file instead. For example Galley 2 (a
| PHP-enabled photo album) safetly tucks away the actual images and in
| the image source, it calls for something like
| "main.php?g2_view=core.DownloadItem&g2_itemId=12&g2_serialNumber=3".
|
| How do you do that? Do you need to use the database to do this? Thank
| you.
i don't normally do this, but i'm going to paste source. (sorry about the
text wrapping). do NOT store images in a db as this limits your options when
you consider migrating from one db to another and the amount of code that
could need changes. it's a pain in the ass. the following requires the gdi
lib. anyway, here's how to call this first set of code (generates a
thumbnail of an image and when clicked, opens the actual file):
note that i include a config page with a "site" class that stores info about
the web site...$site->uri would be like "http://www.mysite.org/"...you'll
notice other functions that come from my functions.inc.php script...just
modify what you need to - even hard code for now.
<a
href="<?= $site->uri ?>get.file.php?fileName=blah.jpg"
style="font-size:8pt;"
target="VIEW_FILE"
>
<img
src="<?= $site->uri ?>get.thumb.nail.php?fileName=blah.jpg&maxSize=200"
alt="File Not Found!"
title="Click To Open: blah.jpg"
/>
blah.jpg
</a>
====== contents of get.thumb.nail.php ========
<?
require_once 'site.cfg.php';
require_once $site->includeDirectory . 'functions.inc.php';
$fileName = $_REQUEST['fileName'] ? $_REQUEST['fileName'] :
$_REQUEST['altImage'];
$maxSize = $_REQUEST['maxSize'] ? $_REQUEST['maxSize'] : 200;
$filePath = $site->imagesDirectory;
if (!(isSupportedImage($fileName) || isSupportedMedia($fileName)))
{
$fileName = isSupportedMedia($fileName) ? 'media.jpg' :
'document.jpg';
}
$fileData = @file_get_contents($filePath . $fileName);
$originalImage = @imagecreatefromstring($fileData);
@list($imageWidth, $imageHeight, $imageType, $imageAttributes) =
@getimagesize($filePath . $fileName);
$newImageHeight = $imageWidth < $maxSize ? $imageHeight : ($imageHeight /
$imageWidth) * $maxSize;
$newImageWidth = $imageWidth < $maxSize ? $imageWidth : $maxSize;
$thumbNail = @imagecreatetruecolor($newImageWidth, $newImageHeight);
@imagecopyresampled(
$thumbNail,
$originalImage,
0,
0,
0,
0,
$newImageWidth,
$newImageHeight,
@imagesx($originalImage),
@imagesy($originalImage)
);
@imagejpeg($thumbNail);
@imagedestroy($thumbNail);
@imagedestroy($originalImage);
?>
===========
======= contents of get.file.php ==========
<?
require_once 'site.cfg.php';
$fileData = '';
$fileName = $_REQUEST['fileName'];
$filePath = $site->uploadBaseDirectory;
if ($fileName != ''){ $fileData = @file_get_contents($filePath .
$fileName); }
header("content-type: application/octet-stream" );
header("content-size: " . count($fileData) );
header("content-disposition: inline; filename=$fileName");
echo $fileData;
?>
===========
hth,
me
Navigation:
[Reply to this message]
|