Skip to content
Find file
8ebaae8
50 lines (36 sloc) 1.29 KB
<?php
/**
* Bypass Cross-Origin Resource Sharing.
*/
$imageUrl = isset($_GET['url']) ? $_GET['url'] : '';
if (empty($imageUrl)) {
header('HTTP/1.1 404 Not Found');
header("Content-Type: text/plain");
return;
}
try {
$imageType = @exif_imagetype($imageUrl);
if ($imageType != IMAGETYPE_GIF && $imageType != IMAGETYPE_JPEG && $imageType != IMAGETYPE_PNG) {
throw new Exception('The URL does not contain an image');
}
$mimeTypes = array();
$mimeTypes[IMAGETYPE_GIF] = 'image/gif';
$mimeTypes[IMAGETYPE_JPEG] = 'image/jpeg';
$mimeTypes[IMAGETYPE_PNG] = 'image/png';
header('Content-Type: ' . $mimeTypes[$imageType]);
// Caching, image jaar geldig.
define('ONE_YEAR_SECONDS', 31536000);
header('Pragma: public');
header('Cache-Control: public,maxage=' . ONE_YEAR_SECONDS);
header('Date: ' . gmdate('D, d M Y H:i:s', time()) . ' GMT');
header('Expires: ' . gmdate('D, d M Y H:i:s', (time() + ONE_YEAR_SECONDS)) . ' GMT');
header_remove('Set-Cookie');
readfile($imageUrl);
} catch (Exception $e) {
$message = $e->getMessage();
$cause = $e->getPrevious() ? $e->getPrevious()->getMessage() : '';
header("HTTP/1.1 501 Internal Server Error");
header("Content-Type: text/plain");
echo $message;
echo $cause;
}
Jump to Line
Something went wrong with that request. Please try again.