function handleGetThumbnails($albumname) {
OC_Response::enableCaching(3600 * 24); // 24 hour
- $photo = new OC_Image();
- $photo->loadFromFile(OC::$CONFIG_DATADIRECTORY.'/../gallery/'.$albumname.'.png');
- $photo->show();
+ $thumbnail = OC::$CONFIG_DATADIRECTORY.'/../gallery/'.$albumname.'.png';
+ header('Content-Type: '.OC_Image::getMimeTypeForFile($thumbnail));
+ OC_Response::sendFile($thumbnail);
}
function handleGalleryScanning() {
protected $imagetype = IMAGETYPE_PNG; // Default to png if file type isn't evident.
protected $filepath = null;
+ static public function getMimeTypeForFile($filepath) {
+ $imagetype = exif_imagetype($filepath);
+ return $imagetype ? image_type_to_mime_type($imagetype) : '';
+ }
+
/**
* @brief Constructor.
* @param $imageref The path to a local file, a base64 encoded string or a resource created by an imagecreate* function.
const STATUS_FOUND = 304;
const STATUS_NOT_MODIFIED = 304;
const STATUS_TEMPORARY_REDIRECT = 307;
+ const STATUS_NOT_FOUND = 404;
static public function enableCaching($cache_time = null) {
if (is_numeric($cache_time)) {
case self::STATUS_FOUND;
$status = $status . ' Found';
break;
+ case self::STATUS_NOT_FOUND;
+ $status = $status . ' Not Found';
+ break;
}
header($protocol.' '.$status);
}
if (empty($lastModified)) {
return;
}
+ if (is_int($lastModified)) {
+ $lastModified = gmdate(DateTime::RFC2822, $lastModified);
+ }
if ($lastModified instanceof DateTime) {
$lastModified = $lastModified->format(DateTime::RFC2822);
}
}
header('Last-Modified: '.$lastModified);
}
+
+ static public function sendFile($filepath=null) {
+ $fp = fopen($filepath, 'rb');
+ if ($fp) {
+ self::setLastModifiedHeader(filemtime($filepath));
+ self::setETagHeader(md5_file($filepath));
+
+ header('Content-Length: '.filesize($filepath));
+ fpassthru($fp);
+ }
+ else {
+ self::setStatus(self::STATUS_NOT_FOUND);
+ }
+ }
}