Buongiorno a tutti,
il problema è questo: ho una directory con delle immagini e tramite una pagina php devo elencare tutte e fare in modo che cliccando sul link corrispondente venga richiesto il download dell'immagine anziché aprirla automaticamente nel browser.
Fin qui tutto bene, se non fosse che le immagini sono di oltre 250Mb e la readfile() va in timeout.
Il server è quello standard dell'hosting windows di aruba (non è mio il sito), vorrei sapere se c'è qualche modo per impedire il timeout, o almeno allungare i temppi ad un paio d'ore.
Ho provato con set_time_limit() impostato a -1, 0, 3600, 6000... ma niente da fare, nessun cambiamento.
Ho anche provato la soluzione proposta in questo thread, ma ancora una volta nessun cambiamento.
Allego la parte di codice che gestisce il download:
codice:
$file = $_GET['img'];
$ext = strtolower(end(explode(".", $file)));
$tipo = isset($formati[$ext]) ? $formati[$ext] : "application/octet-stream";
header("Pragma: public");
header("Expires: 0");
//header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
//header("Cache-Control: private",false);
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Content-Transfer-Encoding: binary");
header("Content-length: ".filesize($file));
header("Content-type: $tipo");
header("Content-Disposition: attachment; filename=\"$file\"");
readfile($file);
Togliendo i commenti alle righe di Cache-Control il download non parte nemmeno, resta sempre a cercare la pagina.
Lo script non-funzionante è qui.
Ringrazio in anticipo chiunque mi sappia dare indicazioni utili!