Hi,
Are you really sure that you download 1.5GB through another extension and not download the file directly in the server ?
Because there is a huge difference between calling a PHP page which will send you "manually" a file (with the time limitations we know) and download a file directly in the web server (without time limitation because there is not PHP, it is a classical download).
Redirecting the user to another url works but it is not something safe because everybody can access to the file with the right url.
What I can propose you is a little patch in order to use "readfile" instead of reading manually the file.
I know that there is something strange with the output buffering so we can try to avoid it.
You have to make some replacement in the "administrator/component/com_hikashop/classes/file.php" file.
header("Expires: 0");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="' . $name . '"');
header('Content-Length: '.($seek_end - $seek_start + 1));
header("Cache-Control: maxage=1");
header("Pragma: public");
header("Content-Transfer-Encoding: binary");
$fp = fopen($filename, 'rb');
By:
header("Expires: 0");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="' . $name . '"');
header("Cache-Control: maxage=1");
header("Pragma: public");
header("Content-Transfer-Encoding: binary");
if($seek_start == 0) {
header('Content-Length: ' . filesize($filename));
if(!ini_get('safe_mode')){
set_time_limit(0);
}
while(ob_get_level() > 1)
ob_end_clean();
flush();
readfile($filename);
exit;
}
header('Content-Length: '.($seek_end - $seek_start + 1));
$fp = fopen($filename, 'rb');
So it will use the "readfile" function if you are not trying to use the "resume download" feature.
By flushing and cleaning the output buffering, I hope that your server won't block anymore the sending of the file.
Regards,