diff options
author | cash <cash.costello@gmail.com> | 2012-01-02 09:48:22 -0500 |
---|---|---|
committer | cash <cash.costello@gmail.com> | 2012-01-02 09:48:22 -0500 |
commit | 86535f77d6b32a2c8a403609ded299a76c73bba0 (patch) | |
tree | 94341c59aa175683618f16e602ab00752bad04f5 /pages/photos/image/download.php | |
parent | 30e4d9f0a2e45e640de3e57bd5f432022141317c (diff) | |
download | elgg-86535f77d6b32a2c8a403609ded299a76c73bba0.tar.gz elgg-86535f77d6b32a2c8a403609ded299a76c73bba0.tar.bz2 |
added support for downloading images
Diffstat (limited to 'pages/photos/image/download.php')
-rw-r--r-- | pages/photos/image/download.php | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/pages/photos/image/download.php b/pages/photos/image/download.php new file mode 100644 index 000000000..ef47b7638 --- /dev/null +++ b/pages/photos/image/download.php @@ -0,0 +1,41 @@ +<?php +/** + * Download a photo + * + * @author Cash Costello + * @license http://www.gnu.org/licenses/gpl-2.0.html GNU General Public License v2 + */ + +$guid = (int) get_input('guid'); +$image = get_entity($guid); + +$disposition = get_input('disposition', 'attachment'); + +if ($image) { + $filename = $image->originalfilename; + $mime = $image->mimetype; + + header("Content-Type: $mime"); + header("Content-Disposition: $disposition; filename=\"$filename\""); + + $contents = $image->grabFile(); + + if (empty($contents)) { + echo file_get_contents(dirname(dirname(__FILE__)) . "/graphics/image_error_large.png" ); + } else { + + // expires every 60 days + $expires = 60 * 60*60*24; + + header("Content-Length: " . strlen($contents)); + header("Cache-Control: public", true); + header("Pragma: public", true); + header('Expires: ' . gmdate('D, d M Y H:i:s', time() + $expires) . ' GMT', true); + + echo $contents; + } + + exit; +} else { + register_error(elgg_echo("image:downloadfailed")); +} |