Download di file con PHP - Scaricarne solo uno alla volta!
Domanda
Ho un file PHP che serve un file, ma il problema è che, indipendentemente dal browser utilizzato, se fai clic su 2 collegamenti che vanno a 2 file separati, il secondo download non inizia fino al primo uno è completo! Qualche idea?
Codice download
header('Content-Type: application/octet-stream');
header('Content-Description: File Transfer');
header('Content-Disposition: attachment; filename="'.basename($filename).'"');
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: ' . filesize($fullpath));
readfile($fullpath);
Link di esempio
- Link 1: download.php? downloadfile = 1
- Link 2: download.php? downloadfile = 2
Soluzione
Potrebbero esserci diversi motivi per questo.
-
Stai utilizzando le sessioni. Pertanto, solo uno script alla volta può modificare la sessione. Quindi il download B può iniziare solo dopo che il download A è terminato. Hai provato due download contemporaneamente al download A nel browser A e al download B nel browser B? Controlla la descrizione per session_write_close
-
Qualche altro problema HTTP in cui il tuo browser non apre più connessioni al server ma riutilizza una singola connessione e ovviamente deve aspettare fino al termine della prima richiesta.
-
Alcune impostazioni OS / Webserver che consentono solo un numero molto limitato di connessioni simultanee aperte sia in totale che per host