Beispiel #1
0
function ldSetCache($file, $time, $image, $headers)
{
    global $store;
    debug("ldSetCache({$file}, {$time}, [image], [headers])", "object");
    if ($time == -2) {
        $time = 0;
    } else {
        $time = time() + $time * 3600;
    }
    if (!preg_match("/\\.\\./", $file)) {
        if ($image) {
            $path = substr($file, 1, strrpos($file, "/") - 1);
            if (!file_exists($store->get_config("files") . "cache/" . $path)) {
                ldMkDir("cache/" . $path);
                ldMkDir("cacheheaders/" . $path);
            }
            $imagetemp = tempnam($store->get_config("files") . "cache/" . $path . "/", "ARCacheImage");
            $headertemp = tempnam($store->get_config("files") . "cacheheaders/" . $path . "/", "ARCacheImage");
            $fileimage = $store->get_config("files") . "cache" . $file;
            $fileheaders = $store->get_config("files") . "cacheheaders" . $file;
            $fpi = @fopen($imagetemp, "wb");
            $fph = @fopen($headertemp, "wb");
            if ($fpi && $fph) {
                fwrite($fph, $headers);
                fclose($fph);
                $imagesize = fwrite($fpi, $image);
                fclose($fpi);
                if (!touch($imagetemp, $time)) {
                    debug("ldSetCache: ERROR: couldn't touch image", "object");
                }
                if (filesize($imagetemp) == $imagesize) {
                    rename($headertemp, $fileheaders);
                    rename($imagetemp, $fileimage);
                } else {
                    @unlink($imagetemp);
                    @unlink($headertemp);
                }
            } else {
                if ($fpi) {
                    fclose($fpi);
                    @unlink($imagetemp);
                }
                if ($fph) {
                    fclose($fph);
                    @unlink($headertemp);
                }
            }
        }
    }
}
Beispiel #2
0
function ldSetCache($file, $time, $image, $headers)
{
    global $store;
    debug("ldSetCache({$file}, {$time}, [image], [headers])", "object");
    if ($time == -2) {
        $time = 0;
    } else {
        $time = time() + $time * 3600;
    }
    if (!preg_match("/\\.\\./", $file)) {
        if ($image) {
            $path = substr($file, 1, strrpos($file, "/") - 1);
            if (!file_exists($store->get_config("files") . "cache/" . $path)) {
                ldMkDir("cache/" . $path);
                ldMkDir("cacheheaders/" . $path);
            }
            $fp = fopen($store->get_config("files") . "cache" . $file, "wb");
            fwrite($fp, $image);
            fclose($fp);
            $fp = fopen($store->get_config("files") . "cacheheaders" . $file, "wb");
            fwrite($fp, $headers);
            fclose($fp);
            if (!touch($store->get_config("files") . "cache" . $file, $time)) {
                debug("ldSetCache: ERROR: couldn't touch image", "object");
            }
        }
    }
}