OVH Cloud OVH Cloud

telechargements interrompus

3 réponses
Avatar
akilal
Salut les amis,

Voila, j'ai écrit un script pour forcer le téléchargement (depuis le
serveur) de fichiers.
ça marche bien mais au-delà d'une certaine taille (6 megs) le
téléchargement est interrompu :(
Pouvez-vous s'il vous plait y jeter un coup d'oeil et me dire ce qui
cloche dans mon code?

Voici une portion de mon script :
/*******************************************/
$download_size = filesize($file);
header("Pragma: public");
header("Content-type: application/force-download");
header("Content-Disposition: attachment; filename=".$filename);
header("Accept-Ranges: bytes");
header("Content-Length: $download_size");

//@readfile($file);
$fh=fopen($file, 'rb');
if ($fh!=false){
while (!feof($fh) && !connection_aborted()) echo fread
($fh,262144);
fclose($fh);
}
/*******************************************/

Serai-ce dû :

1) à PHP et à des limitations dans les paramètres de configurations
du fichier php.ini? et si c'est le cas, ne serai-ce pas pas-serieux
d'augmenter la mémoire allouée et par conséquent allourdir le
serveur?

2) à mon script, ai-je oublié quelque chose?
3) au navigateur?

Merci de votre aide :)

3 réponses

Avatar
JayMore
"akilal" wrote in news:cd5oca$:



A mon avis, tu dois tomber en time-out si ton script met plus de 30s (en
fonction de max_execution_time du fichier INI).
Ou tu dois remplir les buffers de sorties.

Tu devrais plutot utiliser un header("location: /chemin/du/fichier")
Avatar
Dege

"akilal" wrote in news:cd5oca$:



A mon avis, tu dois tomber en time-out si ton script met plus de 30s (en
fonction de max_execution_time du fichier INI).
Ou tu dois remplir les buffers de sorties.


Salut,
Sur les serveurs Free le max_execution_time est fixé à 5s et chez
Online 8s, 30s c'est du luxe ;)
Enfin c'est assez fréquent chez les hébergeurs courants
cordialement

--
-------------
Dégé

- Plasticien - Illustrateur Print & Multimédia -
Pour répondre en direct mailto --> http://cerbermail.com/?BgWFmQXAkr

Avatar
Findux
Bonjour,

Par défaut php.ini bloque à 8 MO la mémoire utilisée par un script, pour le max execution time tu peux utiliser set_time_limit(0).

---F I N D U X-------------------------
"Le minimum pourrait être défini comme la perfection qu'atteint un objet
lorsqu'il n'est plus possible de l'améliorer par soustraction" (John Pawson)

"akilal" wrote in news:cd5oca$:



A mon avis, tu dois tomber en time-out si ton script met plus de 30s (en
fonction de max_execution_time du fichier INI).
Ou tu dois remplir les buffers de sorties.

Tu devrais plutot utiliser un header("location: /chemin/du/fichier")