|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Candidat au titre de Membre du Club
![]() Inscription : juillet 2004 Messages : 33 ![]() |
Bonjour,
Dans un script je suis amené à télécharger des fichiers zip pour les décompresser sur mon serveur. Des utilisateurs se plaignent que quand le fichier est gros ca passe pas forcement, ou suivant le serveur web où le script est placé ca plante. Je viens donc de le refaire en utilisant cette fois si un socket sur le port 80. Ai-je fais le bon choix? quelles sont les nouveaux inconveniants/avantages auquel je vais être confronté? la communauté php a été assez évasive sur ce point j'ai pas eu trop d'informations. Temps de connexion plus long ? Timeout plus intéréssant (tardif)? En règle générale quelles sont les config utilisées? Merci pour vos réponses. |
|
|
00
|
|
|
#2 |
|
Membre confirmé
![]() Inscription : décembre 2006 Messages : 297 ![]() |
Je te conseil la méthode cURL, qui est la plus simple, propre et rapide en tout point.
Maintenant, je pense que tu vas tombé sur des configurations trop diverse (free.fr par exemple) qui empêche l'exécution du script plus de 30 secondes, alors évidements, il peut y avoir des problèmes. Pour répondre à tes questions, tu as fait le bon choix par rapport à un fopen() classique: oui, car fsockopen() permet l'ajout de header qui peuvent te permettre de télécharger (de simulé un navigateur web) là ou fopen() ne passera pas. Les temps de connection soit tout aussi rapide qu'avec fopen, mais si tu cherches à mieux faire, utilise cURL qui lui est plus performant (nettement visible). fsockopen(), de mémoire d'utilisateur, ne prend pas les timeouts, (bug???) donc il est fort possible que le script fonctionne plus longtemps pour des résultats nulle. |
|
|
00
|
|
|
#3 |
|
Candidat au titre de Membre du Club
![]() Inscription : juillet 2004 Messages : 33 ![]() |
Merci pour ta réponse, je ne connais pas curl (juste de nom) je vais me renseigner sur cet outil et si j'ai des soucis je repasserai te voir.
|
|
|
00
|
|
|
#4 | |
|
Membre émérite
![]() Inscription : mai 2004 Messages : 709 ![]() |
Citation:
Pour le timeout de connexion: le dernier argument de la fonction fsockopen() Pour un timeout sur le flux: stream_set_time_out() fsockopen sera plus rapide que Curl mais ce dernier est plus complet et plus simple à mettre en oeuvre pour des connexions complexes (redirections, https, gestion des errreurs etc...) Si tu n'es pas à une demi seconde près, Curl sinon fsockopen().
__________________
:q :q! :wq :w :w! :wq! :quit :quit! :help help helpquit quit quithelp :quitplease :quitnow :leave :shit ^X^C ^C ^D ^Z ^Q QUITDAMMIT Jabber: ripat at im.apinc.org |
|
|
|
00
|
|
|
#5 |
|
Candidat au titre de Membre du Club
![]() Inscription : juillet 2004 Messages : 33 ![]() |
bon je me suis remis sur ce script.. j'ai refais la même chose avec CURL, mais à mon grand désespoir je suis encore confronté à des limites de temps/taille. Je veux toujours transférer des archives gzip d'un serveur web (variable..) vers mon serveur. Si je précise celà c'est pour écarter de suite la solution FTP, le transfert doit se faire via le protocole HTTP.
CURL me revoit un timeout de 30 secondes atteint, je pensais que cette librairie permettait de passer outre les limitations d'upload et de timeout spécifiées dans le php.ini. J'ai rien compris ou il faut rajouter des paramètres à CURL pour qu'il ne s'arrête pas? Merci pour vos réponses, voir pour vos bouts de code qui fonctionnent sur l'upload de fichier binaire de 5 à 10Mo. SP |
|
|
00
|
|
|
#6 |
|
Membre émérite
![]() Inscription : mai 2004 Messages : 709 ![]() |
Montre tes options CURL?
__________________
:q :q! :wq :w :w! :wq! :quit :quit! :help help helpquit quit quithelp :quitplease :quitnow :leave :shit ^X^C ^C ^D ^Z ^Q QUITDAMMIT Jabber: ripat at im.apinc.org |
|
|
00
|
|
|
#7 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : juillet 2004 Messages : 33 ![]() |
J'utilise un apache configuré par défaut (easyphp 1.8) auquel j'ai juste activé le module CURL.
Voici mon code qui fonctionne correctement sauf en Safe Mode :s, si vous savez comment faire en sorte qu'il fonctionne à tous les coups Code :
|
||
|
|
00
|
|
|
#8 |
|
Membre actif
![]() Inscription : décembre 2005 Messages : 303 ![]() |
mmh, j'avais eu le même problème sur un hebergement mutualisé. Après une grosse prises de tête, j'ai modifié la config du serveur apache :
max_upload_file_size 10 mo. et hop ca passe et sans erreur 500. le max upload file est limité à 2mo dans les configurations apache par defaut. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com