projects
/
phpfspot.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
underbar.png
[phpfspot.git]
/
phpfspot_img.php
diff --git
a/phpfspot_img.php
b/phpfspot_img.php
index 194b534ba63e61d9258ea0a1ce621d35673581f4..bc8d3d11badc4b22067eba044e8c15deaf50c8f4 100644
(file)
--- a/
phpfspot_img.php
+++ b/
phpfspot_img.php
@@
-2,8
+2,9
@@
/***************************************************************************
*
/***************************************************************************
*
- * Copyright (c) by Andreas Unterkircher, unki@netshadow.at
- * All rights reserved
+ * phpfspot, presents your F-Spot photo collection in Web browsers.
+ *
+ * Copyright (c) by Andreas Unterkircher
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@
-23,10
+24,17
@@
require_once "phpfspot.class.php";
require_once "phpfspot.class.php";
+/**
+ * PHPFSPOT_IMG class
+ *
+ * handles phpfspot's photos. It will output either the photo binaries
+ * or can also show error messages as a on-the-fly generated picture.
+ * @package phpfspot
+ */
class PHPFSPOT_IMG {
class PHPFSPOT_IMG {
-
var
$db;
-
var
$parent;
+
private
$db;
+
private
$parent;
/**
* PHPFSPOT_IMG class constructor
/**
* PHPFSPOT_IMG class constructor
@@
-53,19
+61,24
@@
class PHPFSPOT_IMG {
* the client - in the specified width. it also try's
* to create on-the-fly missing thumbnails via PHPFSPOT
* gen_thumbs function.
* the client - in the specified width. it also try's
* to create on-the-fly missing thumbnails via PHPFSPOT
* gen_thumbs function.
+ * @param integer $idx
+ * @param integer $width
*/
public function show($idx, $width = 0)
{
*/
public function show($idx, $width = 0)
{
+ if($idx == 'rand')
+ $idx = $this->parent->get_random_photo();
+
$details = $this->parent->get_photo_details($idx);
if(!$details) {
$details = $this->parent->get_photo_details($idx);
if(!$details) {
- $this->parent->showTextImage("The image you requested is unknown");
+ $this->parent->showTextImage("The image
(". $idx .")
you requested is unknown");
return;
}
/* no width specified - show photo in its original size */
if($width == 0) {
return;
}
/* no width specified - show photo in its original size */
if($width == 0) {
- $fullpath = $this->parent->translate_path($
details['directory_path']) ."/". $details['name']
;
+ $fullpath = $this->parent->translate_path($
this->parent->parse_uri($details['uri'], 'fullpath'))
;
}
/* show thumbnail */
else {
}
/* show thumbnail */
else {
@@
-73,7
+86,7
@@
class PHPFSPOT_IMG {
if(!$this->parent->getMD5($idx)) {
$this->parent->gen_thumb($idx);
}
if(!$this->parent->getMD5($idx)) {
$this->parent->gen_thumb($idx);
}
- $fullpath = $this->parent->
cfg->base_path ."/thumbs/". $width ."_". $this->parent->getMD5(
$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 the thumb file does not exist, create it */
if(!file_exists($fullpath)) {
$this->parent->gen_thumb($idx);
@@
-87,10
+100,8
@@
class PHPFSPOT_IMG {
if(!is_readable($fullpath)) {
$this->parent->showTextImage("File ". basename($fullpath) ." is not readable. Check the permissions");
return;
if(!is_readable($fullpath)) {
$this->parent->showTextImage("File ". basename($fullpath) ." is not readable. Check the permissions");
return;
- }
-
- $tmp = getimagesize($fullpath);
- $mime = $tmp['mime'];
+ }
+ $mime = $this->parent->get_mime_info($fullpath);
if(!$this->parent->checkifImageSupported($mime)) {
$this->parent->showTextImage("Unsupported Image Type");
if(!$this->parent->checkifImageSupported($mime)) {
$this->parent->showTextImage("Unsupported Image Type");
@@
-100,19
+111,23
@@
class PHPFSPOT_IMG {
Header("Content-Type: ". $mime);
Header("Content-Length: ". filesize($fullpath));
Header("Content-Transfer-Encoding: binary\n");
Header("Content-Type: ". $mime);
Header("Content-Length: ". filesize($fullpath));
Header("Content-Transfer-Encoding: binary\n");
- Header("Content-Disposition: inline; filename=\"". $details['name'] ."\"");
+ 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("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()
$file = fopen($fullpath, "rb");
fpassthru($file);
@fclose($file);
} // show()
-}
+}
// PHPFSPOT_IMG()
-if(isset($_GET['idx']) &&
is_numeric($_GET['idx']
)) {
+if(isset($_GET['idx']) &&
(is_numeric($_GET['idx']) || $_GET['idx'] == 'rand'
)) {
$img = new PHPFSPOT_IMG;
$img = new PHPFSPOT_IMG;