aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrub <rub@piwigo.org>2006-10-10 21:23:06 +0000
committerrub <rub@piwigo.org>2006-10-10 21:23:06 +0000
commit8a179eb5da255d7dc84879e5efab70dacd9e9a32 (patch)
tree0ac8a5b42bf7f83d79c53aaeadbef5250d5eb021
parent3c6dcdf754cad2131d2d65a605e03368e1d8b102 (diff)
Resolved Issue ID 0000556:
o Error on Save a High Definition Picture stored on distant site Merge branch-1_6 1558:1559 into BSF git-svn-id: http://piwigo.org/svn/trunk@1560 68402e56-0260-453c-a942-63ccdbb3a9ee
-rw-r--r--action.php29
1 files changed, 23 insertions, 6 deletions
diff --git a/action.php b/action.php
index c343b4c25..7e853ed44 100644
--- a/action.php
+++ b/action.php
@@ -25,10 +25,28 @@
// | USA. |
// +-----------------------------------------------------------------------+
+define('PHPWG_ROOT_PATH','./');
+include_once(PHPWG_ROOT_PATH.'include/common.inc.php');
+
+// Check Access and exit when user status is not ok
+check_status(ACCESS_GUEST);
+
function force_download ($filename)
{
//TODO : messages in "lang"
- $filename = realpath($filename);
+ if (!url_is_remote($filename))
+ {
+ $filename = realpath($filename);
+ if (!file_exists($filename))
+ {
+ die("NO FILE HERE");
+ }
+ $file_size = @filesize($filename);
+ }
+ else
+ {
+ $file_size = 0;
+ }
$file_extension = strtolower(substr(strrchr($filename,"."),1));
@@ -45,10 +63,6 @@ function force_download ($filename)
default: $ctype="application/octet-stream";
}
- if (!file_exists($filename)) {
- die("NO FILE HERE");
- }
-
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
@@ -57,7 +71,10 @@ function force_download ($filename)
header("Content-Disposition: attachment; filename=\""
.basename($filename)."\";");
header("Content-Transfer-Encoding: binary");
- header("Content-Length: ".@filesize($filename));
+ if (isset($file_size) and ($file_size != 0))
+ {
+ header("Content-Length: ".@filesize($filename));
+ }
// Looking at the safe_mode configuration for execution time
if (ini_get('safe_mode') == 0)