From 6a04f2ca02497072b45868f5793b1312c6c29478 Mon Sep 17 00:00:00 2001 From: Reinhold Kainhofer <reinhold@kainhofer.com> Date: Sat, 28 Sep 2013 22:32:50 +0200 Subject: [PATCH] Version 1.5.4: Fix problems with large downloads (turn off the output cache and send the file in chunks) --- Makefile | 2 +- downloads_for_sale.php | 31 ++++++++++++++++-- downloads_for_sale.xml | 4 +-- ...plg_vmcustom_downloads_for_sale_v1.5.4.zip | Bin 0 -> 26477 bytes 4 files changed, 32 insertions(+), 5 deletions(-) create mode 100644 releases/plg_vmcustom_downloads_for_sale_v1.5.4.zip diff --git a/Makefile b/Makefile index a76e1cf..ffe0ce3 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,6 @@ BASE=downloads_for_sale PLUGINTYPE=vmcustom -VERSION=1.5.3 +VERSION=1.5.4 PLUGINFILES=$(BASE).php $(BASE).script.php $(BASE).xml index.html diff --git a/downloads_for_sale.php b/downloads_for_sale.php index bf6589a..5738b69 100644 --- a/downloads_for_sale.php +++ b/downloads_for_sale.php @@ -150,7 +150,32 @@ class plgVmCustomDownloads_for_Sale extends vmCustomPlugin { $this->parseCustomParams($field); return $field; } - + + // This readfile replacement comes from the php.net documentation of readfile (http://www.php.net/readfile), in particular flowbee@gmail.com and chrisputnam@gmail.com summarizing discussions @php-dev: + function readfile_chunked($filename, $retbytes=true) { + $chunksize = 1*(1024*1024); // how many bytes per chunk + $buffer = ''; + $cnt =0; + $handle = fopen($filename, 'rb'); + if ($handle === false) { + return false; + } + while (!feof($handle)) { + $buffer = fread($handle, $chunksize); + echo $buffer; + ob_flush(); + flush(); + if ($retbytes) { + $cnt += strlen($buffer); + } + } + $status = fclose($handle); + if ($retbytes && $status) { + return $cnt; // return num. bytes delivered like readfile() does. + } + return $status; + } + function downloadFile($media_id, &$output){ if ($media_id) { jimport('joomla.filesystem.file'); @@ -159,9 +184,11 @@ class plgVmCustomDownloads_for_Sale extends vmCustomPlugin { JFactory::getApplication()->enqueueMessage(JText::sprintf('VMCUSTOM_DLSALE_ERROR_MEDIA_NOT_CONFIGURED', $media_id), 'error'); return false; } + flush(); + ob_flush(); header("Content-Type: " . $media->file_mimetype); header("Content-Disposition: attachment; filename=\"".JFile::getName($media->file_url)."\""); - if (@readfile($media->file_url)) { + if (@$this->readfile_chunked($media->file_url)) { return true; } else { header_remove("Content-Type"); diff --git a/downloads_for_sale.xml b/downloads_for_sale.xml index fd61d3f..0d409ea 100644 --- a/downloads_for_sale.xml +++ b/downloads_for_sale.xml @@ -1,12 +1,12 @@ <?xml version="1.0" encoding="UTF-8" ?> <install version="1.5" type="plugin" group="vmcustom" method="upgrade"> <name>VMCUSTOM_DLSALE</name> - <creationDate>2013-02-08</creationDate> + <creationDate>2013-09-21</creationDate> <author>Reinhold Kainhofer</author> <authorUrl>http://www.open-tools.net/</authorUrl> <copyright>Copyright (C) 2013 Reinhold Kainhofer. All rights reserved.</copyright> <license>http://www.gnu.org/licenses/gpl.html GNU/GPL v3+</license> - <version>1.5.3</version> + <version>1.5.4</version> <description>VMCUSTOM_DLSALE_DESC</description> <files> <filename plugin="downloads_for_sale">downloads_for_sale.php</filename> diff --git a/releases/plg_vmcustom_downloads_for_sale_v1.5.4.zip b/releases/plg_vmcustom_downloads_for_sale_v1.5.4.zip new file mode 100644 index 0000000000000000000000000000000000000000..019ca0909ab9bc5e8e84b078318e9ddfce9237d1 GIT binary patch literal 26477 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 I#e&QQ02#@JIRF3v literal 0 HcmV?d00001 -- GitLab