port oc_response

This commit is contained in:
Frank Karlitschek 2012-05-03 10:46:27 +02:00
parent 80dff77b65
commit 351740601a
12 changed files with 131 additions and 25 deletions

View File

@ -334,8 +334,8 @@ class OC_Calendar_App{
$calendar_id = $_GET['calendar_id']; $calendar_id = $_GET['calendar_id'];
if (is_numeric($calendar_id)) { if (is_numeric($calendar_id)) {
$calendar = self::getCalendar($calendar_id); $calendar = self::getCalendar($calendar_id);
OC_Response::enableCaching(0); OCP\Response::enableCaching(0);
OC_Response::setETagHeader($calendar['ctag']); OCP\Response::setETagHeader($calendar['ctag']);
$events = OC_Calendar_Object::allInPeriod($calendar_id, $start, $end); $events = OC_Calendar_Object::allInPeriod($calendar_id, $start, $end);
} else { } else {
OC_Hook::emit('OC_Calendar', 'getEvents', array('calendar_id' => $calendar_id, 'events' => &$events)); OC_Hook::emit('OC_Calendar', 'getEvents', array('calendar_id' => $calendar_id, 'events' => &$events));

View File

@ -176,7 +176,7 @@ class OC_Contacts_App {
$rev = $contact->getAsString('REV'); $rev = $contact->getAsString('REV');
if ($rev) { if ($rev) {
$rev = DateTime::createFromFormat(DateTime::W3C, $rev); $rev = DateTime::createFromFormat(DateTime::W3C, $rev);
OC_Response::setLastModifiedHeader($rev); OCP\Response::setLastModifiedHeader($rev);
} }
} }
} }

View File

@ -14,9 +14,9 @@ OCP\User::checkLoggedIn();
OCP\App::checkAppEnabled('contacts'); OCP\App::checkAppEnabled('contacts');
function getStandardImage(){ function getStandardImage(){
OC_Response::setExpiresHeader('P10D'); OCP\Response::setExpiresHeader('P10D');
OC_Response::enableCaching(); OCP\Response::enableCaching();
OC_Response::redirect(OCP\Util::imagePath('contacts', 'person_large.png')); OCP\Response::redirect(OCP\Util::imagePath('contacts', 'person_large.png'));
} }
$id = isset($_GET['id']) ? $_GET['id'] : null; $id = isset($_GET['id']) ? $_GET['id'] : null;
@ -35,19 +35,19 @@ if(!$image) {
if( is_null($contact)) { if( is_null($contact)) {
OCP\Util::writeLog('contacts','photo.php. The VCard for ID '.$id.' is not RFC compatible',OCP\Util::ERROR); OCP\Util::writeLog('contacts','photo.php. The VCard for ID '.$id.' is not RFC compatible',OCP\Util::ERROR);
} else { } else {
OC_Response::enableCaching($caching); OCP\Response::enableCaching($caching);
OC_Contacts_App::setLastModifiedHeader($contact); OC_Contacts_App::setLastModifiedHeader($contact);
// Photo :-) // Photo :-)
if($image->loadFromBase64($contact->getAsString('PHOTO'))) { if($image->loadFromBase64($contact->getAsString('PHOTO'))) {
// OK // OK
OC_Response::setETagHeader(md5($contact->getAsString('PHOTO'))); OCP\Response::setETagHeader(md5($contact->getAsString('PHOTO')));
} }
else else
// Logo :-/ // Logo :-/
if($image->loadFromBase64($contact->getAsString('LOGO'))) { if($image->loadFromBase64($contact->getAsString('LOGO'))) {
// OK // OK
OC_Response::setETagHeader(md5($contact->getAsString('LOGO'))); OCP\Response::setETagHeader(md5($contact->getAsString('LOGO')));
} }
if ($image->valid()) { if ($image->valid()) {
$max_size = 200; $max_size = 200;

View File

@ -27,9 +27,9 @@ OC_JSON::checkLoggedIn();
OCP\App::checkAppEnabled('contacts'); OCP\App::checkAppEnabled('contacts');
function getStandardImage(){ function getStandardImage(){
OC_Response::setExpiresHeader('P10D'); OCP\Response::setExpiresHeader('P10D');
OC_Response::enableCaching(); OCP\Response::enableCaching();
OC_Response::redirect(OCP\Util::imagePath('contacts', 'person.png')); OCP\Response::redirect(OCP\Util::imagePath('contacts', 'person.png'));
} }
if(!function_exists('imagecreatefromjpeg')) { if(!function_exists('imagecreatefromjpeg')) {
@ -49,7 +49,7 @@ if(is_null($contact)){
getStandardImage(); getStandardImage();
exit(); exit();
} }
OC_Response::enableCaching($caching); OCP\Response::enableCaching($caching);
OC_Contacts_App::setLastModifiedHeader($contact); OC_Contacts_App::setLastModifiedHeader($contact);
$thumbnail_size = 23; $thumbnail_size = 23;
@ -58,7 +58,7 @@ $thumbnail_size = 23;
$image = new OC_Image(); $image = new OC_Image();
$photo = $contact->getAsString('PHOTO'); $photo = $contact->getAsString('PHOTO');
if($photo) { if($photo) {
OC_Response::setETagHeader(md5($photo)); OCP\Response::setETagHeader(md5($photo));
if($image->loadFromBase64($photo)) { if($image->loadFromBase64($photo)) {
if($image->centerCrop()) { if($image->centerCrop()) {

View File

@ -41,7 +41,7 @@ $ftype=OC_Filesystem::getMimeType( $filename );
header('Content-Type:'.$ftype); header('Content-Type:'.$ftype);
header('Content-Disposition: attachment; filename="'.basename($filename).'"'); header('Content-Disposition: attachment; filename="'.basename($filename).'"');
OC_Response::disableCaching(); OCP\Response::disableCaching();
header('Content-Length: '.OC_Filesystem::filesize($filename)); header('Content-Length: '.OC_Filesystem::filesize($filename));
@ob_end_clean(); @ob_end_clean();

View File

@ -68,7 +68,7 @@ if ($source !== false) {
//get time mimetype and set the headers //get time mimetype and set the headers
$mimetype = OC_Filesystem::getMimeType($source); $mimetype = OC_Filesystem::getMimeType($source);
header("Content-Transfer-Encoding: binary"); header("Content-Transfer-Encoding: binary");
OC_Response::disableCaching(); OCP\Response::disableCaching();
header('Content-Disposition: filename="'.basename($source).'"'); header('Content-Disposition: filename="'.basename($source).'"');
header("Content-Type: " . $mimetype); header("Content-Type: " . $mimetype);
header("Content-Length: " . OC_Filesystem::filesize($source)); header("Content-Length: " . OC_Filesystem::filesize($source));

View File

@ -41,10 +41,10 @@ function handleRemove($name) {
} }
function handleGetThumbnails($albumname) { function handleGetThumbnails($albumname) {
OC_Response::enableCaching(3600 * 24); // 24 hour OCP\Response::enableCaching(3600 * 24); // 24 hour
$thumbnail = OC::$CONFIG_DATADIRECTORY.'/../gallery/'.urldecode($albumname).'.png'; $thumbnail = OC::$CONFIG_DATADIRECTORY.'/../gallery/'.urldecode($albumname).'.png';
header('Content-Type: '.OC_Image::getMimeTypeForFile($thumbnail)); header('Content-Type: '.OC_Image::getMimeTypeForFile($thumbnail));
OC_Response::sendFile($thumbnail); OCP\Response::sendFile($thumbnail);
} }
function handleGalleryScanning() { function handleGalleryScanning() {

View File

@ -72,7 +72,7 @@ function handleGetThumbnail($token, $imgpath) {
$owner = OC_Gallery_Sharing::getTokenOwner($token); $owner = OC_Gallery_Sharing::getTokenOwner($token);
$image = OC_Gallery_Photo::getThumbnail($imgpath, $owner); $image = OC_Gallery_Photo::getThumbnail($imgpath, $owner);
if ($image) { if ($image) {
OC_Response::enableCaching(3600 * 24); // 24 hour OCP\Response::enableCaching(3600 * 24); // 24 hour
$image->show(); $image->show();
} }
} }
@ -86,7 +86,7 @@ function handleGetAlbumThumbnail($token, $albumname)
$image->centerCrop(); $image->centerCrop();
$image->resize(200); $image->resize(200);
$image->fixOrientation(); $image->fixOrientation();
OC_Response::enableCaching(3600 * 24); // 24 hour OCP\Response::enableCaching(3600 * 24); // 24 hour
$image->show(); $image->show();
} }
} }
@ -95,7 +95,7 @@ function handleGetPhoto($token, $photo) {
$owner = OC_Gallery_Sharing::getTokenOwner($token); $owner = OC_Gallery_Sharing::getTokenOwner($token);
$file = OCP\Config::getSystemValue( "datadirectory", OC::$SERVERROOT."/data" ).'/'.$owner.'/files'.urldecode($photo); $file = OCP\Config::getSystemValue( "datadirectory", OC::$SERVERROOT."/data" ).'/'.$owner.'/files'.urldecode($photo);
header('Content-Type: '.OC_Image::getMimeTypeForFile($file)); header('Content-Type: '.OC_Image::getMimeTypeForFile($file));
OC_Response::sendFile($file); OCP\Response::sendFile($file);
} }
switch ($operation) { switch ($operation) {

2
apps/gallery/ajax/thumbnail.php Normal file → Executable file
View File

@ -29,6 +29,6 @@ $img = $_GET['img'];
$image = OC_Gallery_Photo::getThumbnail($img); $image = OC_Gallery_Photo::getThumbnail($img);
if ($image) { if ($image) {
OC_Response::enableCaching(3600 * 24); // 24 hour OCP\Response::enableCaching(3600 * 24); // 24 hour
$image->show(); $image->show();
} }

View File

@ -110,11 +110,11 @@ if($arguments['action']){
OC_MEDIA_COLLECTION::registerPlay($songId); OC_MEDIA_COLLECTION::registerPlay($songId);
header('Content-Type:'.$ftype); header('Content-Type:'.$ftype);
OC_Response::enableCaching(3600 * 24); // 24 hour OCP\Response::enableCaching(3600 * 24); // 24 hour
header('Accept-Ranges: bytes'); header('Accept-Ranges: bytes');
header('Content-Length: '.OC_Filesystem::filesize($arguments['path'])); header('Content-Length: '.OC_Filesystem::filesize($arguments['path']));
$mtime = OC_Filesystem::filemtime($arguments['path']); $mtime = OC_Filesystem::filemtime($arguments['path']);
OC_Response::setLastModifiedHeader($mtime); OCP\Response::setLastModifiedHeader($mtime);
OC_Filesystem::readfile($arguments['path']); OC_Filesystem::readfile($arguments['path']);
exit; exit;

View File

@ -43,7 +43,7 @@ if(isset($_POST['play']) and $_POST['play']=='true'){
$song=OC_MEDIA_COLLECTION::getSong($_POST['song']); $song=OC_MEDIA_COLLECTION::getSong($_POST['song']);
$ftype=OC_Filesystem::getMimeType( $song['song_path'] ); $ftype=OC_Filesystem::getMimeType( $song['song_path'] );
header('Content-Type:'.$ftype); header('Content-Type:'.$ftype);
OC_Response::disableCaching(); OCP\Response::disableCaching();
header('Content-Length: '.OC_Filesystem::filesize($song['song_path'])); header('Content-Length: '.OC_Filesystem::filesize($song['song_path']));
OC_Filesystem::readfile($song['song_path']); OC_Filesystem::readfile($song['song_path']);

106
lib/public/response.php Normal file
View File

@ -0,0 +1,106 @@
<?php
/**
* ownCloud
*
* @author Frank Karlitschek
* @copyright 2010 Frank Karlitschek karlitschek@kde.org
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
* License as published by the Free Software Foundation; either
* version 3 of the License, or any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU AFFERO GENERAL PUBLIC LICENSE for more details.
*
* You should have received a copy of the GNU Affero General Public
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
*
*/
/**
* Public interface of ownCloud for apps to use.
* Response Class.
*
*/
// use OCP namespace for all classes that are considered public.
// This means that they should be used by apps instead of the internal ownCloud classes
namespace OCP;
class Response {
/**
* @brief Enable response caching by sending correct HTTP headers
* @param $cache_time time to cache the response
* >0 cache time in seconds
* 0 and <0 enable default browser caching
* null cache indefinitly
*/
static public function enableCaching($cache_time = null) {
return(\OC_Response::enableCaching($cache_time));
}
/**
* Checks and set Last-Modified header, when the request matches sends a
* 'not modified' response
* @param $lastModified time when the reponse was last modified
*/
static public function setLastModifiedHeader($lastModified) {
return(\OC_Response::setLastModifiedHeader($lastModified));
}
/**
* @brief disable browser caching
* @see enableCaching with cache_time = 0
*/
static public function disableCaching() {
return(\OC_Response::disableCaching());
}
/**
* Checks and set ETag header, when the request matches sends a
* 'not modified' response
* @param $etag token to use for modification check
*/
static public function setETagHeader($etag) {
return(\OC_Response::setETagHeader($etag));
}
/**
* @brief Send file as response, checking and setting caching headers
* @param $filepath of file to send
*/
static public function sendFile($filepath) {
return(\OC_Response::sendFile($filepath));
}
/**
* @brief Set reponse expire time
* @param $expires date-time when the response expires
* string for DateInterval from now
* DateTime object when to expire response
*/
static public function setExpiresHeader($expires) {
return(\OC_Response::setExpiresHeader($expires));
}
/**
* @brief Send redirect response
* @param $location to redirect to
*/
static public function redirect($location) {
return(\OC_Response::redirect($location));
}
}
?>