Page 1 sur 1

download multiple

Posté : 26 mai 2009, 10:15
par Megadeth
Bonjour,

J'ai un p'tit souci qui tient plus du détail qu'autre chose mais que je voudrais quand même réussir à comprendre et corriger si possible.

J'ai eu besoin de mettre en place une appli web pour télécharger de très gros fichiers. Ayant stocké tous mes liens en base et mes fichiers archives zip dans un dossier dédié j'ai forcé le téléchargement, mais si je clique sur un lien puis un autre pour lancer 2 téléchargements simultanément mon navigateur attend que le premier zip soit complètement téléchargé pour ouvrir la 2ème fenêtre "ouvrir, enregistrer, annuler" et ainsi lancer le 2ème téléchargement. C'est pénible quand on veut lancer le téléchargement de tous les fichiers sur une bécane...Ca oblige à rester devant son poste :roll:

Vous voyez le problème ? D'où ça peut venir ? Apache ? Php ? Mysql ? Mon script ?

Merci à vous.

Mega
;)

Posté : 26 mai 2009, 15:12
par Sékiltoyai
Tu as un lien à nous proposer ?

Posté : 26 mai 2009, 15:25
par enneite
je me demande, si ça ne vient pas plutot du navigateur?

Posté : 26 mai 2009, 16:00
par Calimero
je me demande, si ça ne vient pas plutot du navigateur?
Très probable en effet. Quel navigateur utilises-tu ?

Il faut savoir que c'est le protocole HTTP 1.1 (RFC2616) qui limite à 2 connexions ouvertes entre le client et le serveur.

Internet Explorer 7 (et les versions antérieures) respecte strictement cette limite : http://msdn.microsoft.com/en-us/library ... S.85).aspx
In Internet Explorer 7 and earlier, the maximum number of concurrent connections per host process to a single server via HTTP 1.1 is 2.

Posté : 26 mai 2009, 16:00
par Megadeth
Tu as un lien à nous proposer ?
Non désolé c'est une appli web interne avec de très gros fichiers zip !

Je peux toujours vous fournir mon code si vous voyez un truc à corriger, optimiser...
<? session_start();
if (!isset($_SESSION["login"])) {   
  header("location:index.php");  
  exit(); 
}

//param de connexion
// --- GO ! --- 

$q = "SELECT * FROM items WHERE id = ".$_GET["id"];
$r = mysql_query($q);  

if ($rows=mysql_fetch_array($r)){
  $filename = $rows["chemin"];  

  if(is_file($filename)) {
	header("Pragma: public");
	header("Expires: 0");
	header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
	header("Cache-Control: private", false);
        header("Content-Type: application/octet-stream");
        header("Content-Disposition: attachment; filename=".basename($filename));
	header("Content-Transfer-Encoding: binary");
        header("Accept-Ranges: bytes");   
        header("Content-Length: ".filesize($filename));   
     readfile($filename);   
  } else {
    echo 'Fichier non trouvé';
}
} else {
  echo 'pas en base';
}
?>
Navigateurs : FF3.0 et IE7.0

Je vois pas...Est-ce que ca peut venir du <? ? Mettre <?php ? En tout cas merci de vous soucier de mon problème.

Posté : 26 mai 2009, 17:04
par Ryle
IE jusqu'à sa version 7 n'autorise effectivement que deux téléchargements simultanés depuis un serveur (la version 8 en autorise 6 il me semble... à confirmer).

Ce paramétrage peut toutefois être modifié dans la base de registre de windows en ajoutant deux clés de type DWORD (ConnectionsPer1_0Server
et MaxConnectionsPerServer) dans

Code : Tout sélectionner

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings
, et en spécifiant le nombre max souhaité (par exemple 10).

J'imagine que cela affecte FF également... :)

Après, faut savoir que fonction des connexions serveur et utilisateur, lancer 15 gros téléchargements simultanés peut s'avérer plus lent que de lancer les 15 à la suite... donc c'est interessant pour récupérer plusieurs petits fichiers, mais au delà....

Posté : 26 mai 2009, 17:50
par Megadeth
Re,

Je me coucherai plus savant ce soir ^^.

Pour en revenir au truc, c'est que même 2 dans mon cas ca ne fonctionne pas vraiment.
Je clique sur le premier lien, le téléchargement commence puis clique sur un deuxième lien, la fenêtre de téléchargement s'ouvre, je clique sur enregistrer mais rien ne se passe. Tant que le premier n'est pas arrivé à son terme, nada, par contre il garde en mémoire le fait que j'ai accepté et lance le download dès que le premier zip est arrivé à son terme.

C'est bizarre, de chez moi, j'ai l'impression que je peux lancer x téléchargements et tout roule. Plusieurs fichiers en même temps, un executable, des images, de la zik, une vidéo...
Ex : un mail avec pleins de petites vidéos, je peux lancer tous les downloads à la fois de mémoire...


Mega
;)

Posté : 28 mai 2009, 16:09
par Megadeth
C'est bizarre, de chez moi, j'ai l'impression que je peux lancer x téléchargements et tout roule. Plusieurs fichiers en même temps, un executable, des images, de la zik, une vidéo...
Ex : un mail avec pleins de petites vidéos, je peux lancer tous les downloads à la fois de mémoire...
Je confirme. Bizarre :?

Faut ouvrir une page en blank pour chaque enregistrement ?

Mega
;)