Aller au contenu

Sujets conseillés

Posté

Bonjour,

J'ai un souci de comprenette concernant des téléchargements incomplets à partir d'un site (hébergé chez OVH - xxlplan). Les vidéos en download ont une taille allant de 30Mo à beaucoup plus, et chaque download ne va jamais à terme (certains fichiers de 50Mo sont téléchargés à hauteur de 5Mo, d'autre de 150Mo à hauteur de 35Mo). Pas de message d'erreur dans les logs, les fichiers sont pourtant chargés correctement sur le serveur.

Le site étant pour adulte, je ne mets pas de lien.

La requête est effectuée comme suit:

	header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");
header("Content-Disposition: attachment; filename=".basename($filename).";");
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".filesize($_SERVER['DOCUMENT_ROOT']."/fichier.wmv"));
readfile($_SERVER['DOCUMENT_ROOT']."/fichier.wmv");
exit(0);

Le POST_MAX_SIZE est à 32M.

Pourriez-vous me donner une piste ?

Merci,

xpatval

Posté

Tu as une idée du temps au bout duquel ça s'arrête? J'ai tendance à penser qu'il est relativement fixe, par opposition à la taille du fichier transféré (qui va dépendre du débit).

Tu peux regarder du côté de la directive Timeout dans la conf httpd. En théorie c'est prévu pour que ça ne pose pas de problème, mais en réalité, surtout avec des scripts, ça ne me paraît pas impossible du tout.

Côté PHP, il y a aussi set_time_limit() et la valeur par défaut max_execution_time dans php.ini, mais ils ne concernent que le temps CPU plutôt que le temps réel.

Si ce n'est rien de tout ça, il faut voir du côté de règles de filtrage IP qui pourraient avoir des timeouts mal calculés (i.e. depuis le début de le connexion plutôt que depuis le dernier paquet), mais normalement de nos jours ça ne se voit plus trop.

Jacques.

Posté

Le max_execution_time est à 30.

Le problème est que le xxlplan est un mutualisé, or, à par vérifier les parapètres via un phpinfo(), il m'est difficile d'en savoir beaucoup plus...

Les download ont tendance à s'arrêter plutôt à un certain nombre de Mo, mais il y a des exceptions...

xpatval

Posté

Va voir les commentaires sur readfile dans la doc PHP, tu vas voir que:

- max_execution_time s'appliquerait quand même (donc set_time_limit(0) juste avant le readfile pourrait résoudre le problème). Comme quoi la description de tout ça reste très vague...

- certains indiquent un problème de mémoire utilisée, mais je pense que ça dépend beaucoup de l'implémentation au niveau OS. Dans le pire des cas tu peux être obligé de lire le fichier et de le transmettre par "petits" bouts

Jacques.

Posté

un php_value set_time_limit(0) dans le .htaccess pourrait-il régler la chose ?

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...