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
È stato utile?

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top