From b3c000de451fb6961ca40ffbe82c86ccd9fd58fb Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Thu, 18 Jan 2018 17:28:30 +0100 Subject: [PATCH] use sendfile() instead of readfile() --- controllers/class.Download.php | 27 ++++++++++----------------- 1 file changed, 10 insertions(+), 17 deletions(-) diff --git a/controllers/class.Download.php b/controllers/class.Download.php index 8cda3a36a..9d2da85a3 100644 --- a/controllers/class.Download.php +++ b/controllers/class.Download.php @@ -35,7 +35,7 @@ class SeedDMS_Controller_Download extends SeedDMS_Controller_Common { header("Content-Type: " . $content->getMimeType()); header("Cache-Control: must-revalidate"); - readfile($dms->contentDir . $content->getPath()); + sendFile($dms->contentDir . $content->getPath()); } } } /* }}} */ @@ -46,17 +46,13 @@ class SeedDMS_Controller_Download extends SeedDMS_Controller_Common { if(null === $this->callHook('file')) { if(file_exists($dms->contentDir . $file->getPath())) { - header("Content-Type: application/force-download; name=\"" . $file->getOriginalFileName() . "\""); header("Content-Transfer-Encoding: binary"); header("Content-Length: " . filesize($dms->contentDir . $file->getPath() )); header("Content-Disposition: attachment; filename=\"" . $file->getOriginalFileName() . "\""); - //header("Expires: 0"); header("Content-Type: " . $file->getMimeType()); - //header("Cache-Control: no-cache, must-revalidate"); header("Cache-Control: must-revalidate"); - //header("Pragma: no-cache"); - readfile($dms->contentDir . $file->getPath()); + sendFile($dms->contentDir . $file->getPath()); } } } /* }}} */ @@ -76,8 +72,7 @@ class SeedDMS_Controller_Download extends SeedDMS_Controller_Common { header("Content-Disposition: attachment; filename=\"" .$efilename . "\"; filename*=UTF-8''".$efilename); header("Cache-Control: public"); - ob_clean(); - readfile($basedir .$filename ); + sendFile($basedir .$filename ); } } } /* }}} */ @@ -96,8 +91,7 @@ class SeedDMS_Controller_Download extends SeedDMS_Controller_Common { header("Content-Disposition: attachment; filename=\"" .$efilename . "\"; filename*=UTF-8''".$efilename); header("Cache-Control: must-revalidate"); - ob_clean(); - readfile($basedir.$filename); + sendFile($basedir.$filename); } } } /* }}} */ @@ -109,15 +103,14 @@ class SeedDMS_Controller_Download extends SeedDMS_Controller_Common { if(null === $this->callHook('sqldump')) { if(file_exists($basedir . $filename)) { - header("Content-Type: application/zip; name=\"" . $filename . "\""); + header("Content-Type: application/zip"); header("Content-Transfer-Encoding: binary"); header("Content-Length: " . filesize($basedir . $filename )); $efilename = rawurlencode($filename); header("Content-Disposition: attachment; filename=\"" .$efilename . "\"; filename*=UTF-8''".$efilename); header("Cache-Control: must-revalidate"); - ob_clean(); - readfile($basedir.$filename); + sendFile($basedir.$filename); } } } /* }}} */ @@ -137,12 +130,12 @@ class SeedDMS_Controller_Download extends SeedDMS_Controller_Common { $finfo = finfo_open(FILEINFO_MIME_TYPE); $mimetype = finfo_file($finfo, $filename); - header("Content-Type: ".$mimetype."; name=\"approval-" . $document->getID()."-".(int) $_GET['approvelogid'] . get_extension($mimetype) . "\""); + header("Content-Type: ".$mimetype); header("Content-Transfer-Encoding: binary"); header("Content-Length: " . filesize($filename )); header("Content-Disposition: attachment; filename=\"approval-" . $document->getID()."-".(int) $_GET['approvelogid'] . get_extension($mimetype) . "\""); header("Cache-Control: must-revalidate"); - readfile($filename); + sendFile($filename); } } /* }}} */ @@ -161,12 +154,12 @@ class SeedDMS_Controller_Download extends SeedDMS_Controller_Common { $finfo = finfo_open(FILEINFO_MIME_TYPE); $mimetype = finfo_file($finfo, $filename); - header("Content-Type: ".$mimetype."; name=\"review-" . $document->getID()."-".(int) $_GET['reviewlogid'] . get_extension($mimetype) . "\""); + header("Content-Type: ".$mimetype); header("Content-Transfer-Encoding: binary"); header("Content-Length: " . filesize($filename )); header("Content-Disposition: attachment; filename=\"review-" . $document->getID()."-".(int) $_GET['reviewlogid'] . get_extension($mimetype) . "\""); header("Cache-Control: must-revalidate"); - readfile($filename); + sendFile($filename); } return true; } /* }}} */