summaryrefslogtreecommitdiffstats
path: root/phpfspot_img.php
diff options
context:
space:
mode:
authorAndreas Unterkircher <unki@netshadow.at>2008-04-26 10:18:50 +0200
committerAndreas Unterkircher <unki@netshadow.at>2008-04-27 14:20:25 +0200
commit4552617dca9f593137d6785ccd67c6a421df232f (patch)
treefc4aa071256c6f3d5f02365a4fc1f87467f26247 /phpfspot_img.php
parent10736368760f248233def4a1212b69666a1d8460 (diff)
issue115, display tag-selection in photo-index
Signed-off-by: Andreas Unterkircher <unki@netshadow.at>
Diffstat (limited to 'phpfspot_img.php')
-rw-r--r--phpfspot_img.php86
1 files changed, 81 insertions, 5 deletions
diff --git a/phpfspot_img.php b/phpfspot_img.php
index bc8d3d1..3599b2b 100644
--- a/phpfspot_img.php
+++ b/phpfspot_img.php
@@ -64,7 +64,7 @@ class PHPFSPOT_IMG {
* @param integer $idx
* @param integer $width
*/
- public function show($idx, $width = 0)
+ public function showImg($idx, $width = 0)
{
if($idx == 'rand')
$idx = $this->parent->get_random_photo();
@@ -118,12 +118,76 @@ class PHPFSPOT_IMG {
Header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
Header("Cache-Control: no-cache");
Header("Pragma: no-cache");
-
+
+ $file = fopen($fullpath, "rb");
+ fpassthru($file);
+ @fclose($file);
+
+ } // showImg()
+
+ /**
+ * sends a random photo of the requested tag to the browser
+ *
+ * this function will send a random photo to the client.
+ * It is selected out by the provided $tagidx. It also try's
+ * to create on-the-fly missing thumbnails via PHPFSPOT
+ * gen_thumbs function.
+ * @param integer $idx
+ */
+ public function showTagImg($tagidx)
+ {
+ $idx = $this->parent->get_random_tag_photo($tagidx);
+ $width = 30;
+
+ $details = $this->parent->get_photo_details($idx);
+
+ if(!$details) {
+ $this->parent->showTextImage("The image (". $idx .") you requested is unknown");
+ return;
+ }
+
+ /* if no entry for this photo is yet in the database, create thumb */
+ if(!$this->parent->getMD5($idx)) {
+ $this->parent->gen_thumb($idx);
+ }
+ $fullpath = $this->parent->get_thumb_path($width, $idx);
+ /* if the thumb file does not exist, create it */
+ if(!file_exists($fullpath)) {
+ $this->parent->gen_thumb($idx);
+ }
+
+ if(!file_exists($fullpath)) {
+ $this->parent->showTextImage("File ". basename($fullpath) ." does not exist");
+ return;
+ }
+ if(!is_readable($fullpath)) {
+ $this->parent->showTextImage("File ". basename($fullpath) ." is not readable. Check the permissions");
+ return;
+ }
+
+ $mime = $this->parent->get_mime_info($fullpath);
+
+ if(!$this->parent->checkifImageSupported($mime)) {
+ $this->parent->showTextImage("Unsupported Image Type");
+ return;
+ }
+
+ Header("Content-Type: ". $mime);
+ Header("Content-Length: ". filesize($fullpath));
+ Header("Content-Transfer-Encoding: binary\n");
+ Header("Content-Disposition: inline; filename=\"". $this->parent->parse_uri($details['uri'], 'filename') ."\"");
+ Header("Content-Description: ". $this->parent->parse_uri($details['uri'], 'filename'));
+ Header("Accept-Ranges: bytes");
+ Header("Connection: close");
+ Header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
+ Header("Cache-Control: no-cache");
+ Header("Pragma: no-cache");
+
$file = fopen($fullpath, "rb");
fpassthru($file);
@fclose($file);
- } // show()
+ } // showTagImg()
} // PHPFSPOT_IMG()
@@ -132,9 +196,21 @@ if(isset($_GET['idx']) && (is_numeric($_GET['idx']) || $_GET['idx'] == 'rand'))
$img = new PHPFSPOT_IMG;
if(isset($_GET['width']) && is_numeric($_GET['width']))
- $img->show($_GET['idx'], $_GET['width']);
+ $img->showImg($_GET['idx'], $_GET['width']);
else
- $img->show($_GET['idx']);
+ $img->showImg($_GET['idx']);
+
+ exit(0);
}
+if(isset($_GET['tagidx']) && is_numeric($_GET['tagidx'])) {
+
+ $img = new PHPFSPOT_IMG;
+ $img->showTagImg($_GET['tagidx']);
+
+ exit(0);
+
+}
+
+
?>