1
0
Fork 0

Added resize possibility to proxy function

This commit is contained in:
Michael Vogel 2015-10-07 08:25:10 +02:00
commit 1f0b759e2f
18 changed files with 77 additions and 49 deletions

View file

@ -3,6 +3,12 @@
define("PROXY_DEFAULT_TIME", 86400); // 1 Day
define("PROXY_SIZE_MICRO", "micro");
define("PROXY_SIZE_THUMB", "thumb");
define("PROXY_SIZE_SMALL", "small");
define("PROXY_SIZE_MEDIUM", "medium");
define("PROXY_SIZE_LARGE", "large");
require_once('include/security.php');
require_once("include/Photo.php");
@ -37,6 +43,7 @@ function proxy_init() {
$thumb = false;
$size = 1024;
$sizetype = "";
// If the cache path isn't there, try to create it
if (!is_dir($_SERVER["DOCUMENT_ROOT"]."/proxy"))
@ -59,14 +66,27 @@ function proxy_init() {
$size = 200;
// thumb, small, medium and large.
if (substr($url, -6) == ":thumb")
$size = 150;
if (substr($url, -6) == ":small")
$size = 340;
if (substr($url, -7) == ":medium")
if (substr($url, -6) == ":micro") {
$size = 48;
$sizetype = ":micro";
$url = substr($url, 0, -6);
} elseif (substr($url, -6) == ":thumb") {
$size = 80;
$sizetype = ":thumb";
$url = substr($url, 0, -6);
} elseif (substr($url, -6) == ":small") {
$size = 175;
$url = substr($url, 0, -6);
$sizetype = ":small";
} elseif (substr($url, -7) == ":medium") {
$size = 600;
if (substr($url, -6) == ":large")
$url = substr($url, 0, -7);
$sizetype = ":medium";
} elseif (substr($url, -6) == ":large") {
$size = 1024;
$url = substr($url, 0, -6);
$sizetype = ":large";
}
$pos = strrpos($url, "=.");
if ($pos)
@ -176,6 +196,8 @@ function proxy_init() {
}
}
$img_str_orig = $img_str;
// reduce quality - if it isn't a GIF
if ($mime != "image/gif") {
$img = new Photo($img_str, $mime);
@ -188,10 +210,12 @@ function proxy_init() {
// If there is a real existing directory then put the cache file there
// advantage: real file access is really fast
// Otherwise write in cachefile
if ($valid AND $direct_cache)
file_put_contents($_SERVER["DOCUMENT_ROOT"]."/proxy/".proxy_url($_REQUEST['url'], true), $img_str);
elseif ($cachefile != '')
file_put_contents($cachefile, $img_str);
if ($valid AND $direct_cache) {
file_put_contents($_SERVER["DOCUMENT_ROOT"]."/proxy/".proxy_url($_REQUEST['url'], true), $img_str_orig);
if ($sizetype <> '')
file_put_contents($_SERVER["DOCUMENT_ROOT"]."/proxy/".proxy_url($_REQUEST['url'], true).$sizetype, $img_str);
} elseif ($cachefile != '')
file_put_contents($cachefile, $img_str_orig);
header("Content-type: $mime");
@ -208,7 +232,7 @@ function proxy_init() {
killme();
}
function proxy_url($url, $writemode = false) {
function proxy_url($url, $writemode = false, $size = "") {
global $_SERVER;
$a = get_app();
@ -251,6 +275,9 @@ function proxy_url($url, $writemode = false) {
$proxypath = $a->get_baseurl()."/proxy/".$path;
if ($size != "")
$size = ":".$size;
// Too long files aren't supported by Apache
// Writemode in combination with long files shouldn't be possible
if ((strlen($proxypath) > 250) AND $writemode)
@ -260,7 +287,7 @@ function proxy_url($url, $writemode = false) {
elseif ($writemode)
return ($path);
else
return ($proxypath);
return ($proxypath.$size);
}
/**