IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Décompresser des fichiers ZIP de plus de 35 Mo


Sujet :

Langage PHP

  1. #1
    Membre actif Avatar de Général03
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 848
    Points : 283
    Points
    283
    Par défaut Décompresser des fichiers ZIP de plus de 35 Mo
    Bonjour,

    j'ai un serveur de données sur lequel je propose un téléchargement (download d'images) à mes membres. Tous ces fichiers sont zippés avant de les envoyer par un header(). Auparavant j'utilisais des petits fichiers ( < 35 Mo environ) à downloader donc ca roulait bien.
    Avant de me proposer la fenêtre permettant d'enregistrer le zip, mon script tourne pendant un bon moment (le temps de zipper les fichiers) : le temps dépend du nombre de fichier à zipper soit 30 sec pour 35Mo.
    Mais lorsque je souhaite récupérer des fichiers de plus de 35Mo j'ai une erreur 500.
    J'ai essayé d'augmenter memory_limit, max_execution_time, max_input_time mais sans succès. Je précise que pour les fichiers < 35 Mo le téléchargement de mon zip fonctionne !!

    J'utilise la librairie zip.lib.php pour zipper mes fichiers. Est à cause de cette librairie que j'obtiens ce comportement ?
    J'ai remarqué une autre librairie ZipArchive : est elle mieux ?
    De plus je trouve que le temps pour zippper les fichiers est extrêmement long car je fait un fopen(), fread() puis fclose(). N'existe il pas un moyen de copier le fichier sans le lire pour recopier son contenu ?

    J'ai trouvé aussi cette option de php.ini : zlib.output_compression
    Me permettrait elle de compresser mes fichiers à télécharger sans passer par un librairie zip ?

    Merci de m'éclaircir

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2004
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 20
    Points : 16
    Points
    16
    Par défaut
    Hello

    Tout d'abord je t'invite à regarder les logs apache et php, le fait d'avoir une erreur 500 est étrange, et fait plutôt penser à un problème avec apache ( ou effectivement avec ta librairie de compression ).

    Ensuite essaye de modifier les valeurs de php directement dans le script en utilisant init_set, soit:

    // 200Mo
    ini_set(memory_limit,200000000);
    // 10 minutes
    ini_set(max_execution_time,600);

    (à mettre au tout début du script, donc)

    Enfin, il doit y avoir un mode debug à ta librairie, ça serait bien de l'activer.

    c'était juste une contribution d'indices, donc.... bonne chance : ;-)

  3. #3
    Membre actif Avatar de Général03
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 848
    Points : 283
    Points
    283
    Par défaut
    Tout d'abord je t'invite à regarder les logs apache et php
    Je travaille sous FreeBSD mais je ne sais pas où sont rangé les logs PHP ??
    Ensuite essaye de modifier les valeurs de php directement dans le script en utilisant init_set, soit:

    // 200Mo
    ini_set(memory_limit,200000000);
    // 10 minutes
    ini_set(max_execution_time,600);
    J'ai mis cette configuration dans mon php.ini comme cela ces paramètres sont gardés même après la fin du script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    memory_limit=512M //mon serveur à 512Mo de RAM
    max_execution_time=300 //soit 5 minutes
    Enfin, il doit y avoir un mode debug à ta librairie, ça serait bien de l'activer.
    Je ne crois pas qu'il y ai de debug pour cette librairie, pas trouvé d'info !

  4. #4
    Membre actif Avatar de Général03
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 848
    Points : 283
    Points
    283
    Par défaut
    Mes nombreux tests échouant sur cette librairie, m'ont obligé de me tourner vers une autre solution => PCLZip
    Après l'avoir adapter j'ai réussi à envoyer mes ZIP de plus de 35Mo (sans changer mon PHP.ini). Donc est une erreur de prog de ma part ou de librairie ???
    En tout cas PCLZip fonctionne nickel et en plus je lui donne un dossier et il me zippe le dossier entier

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 18/07/2012, 12h00
  2. [Zip] manipuler des fichiers ZIP
    Par sliderman dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 07/03/2008, 12h51
  3. Décompresser des fichiers à l'installation de l'application
    Par nicolas2603 dans le forum VBA Access
    Réponses: 0
    Dernier message: 07/02/2008, 17h13
  4. Decompresser des fichiers *.zip
    Par alex_95 dans le forum Général VBA
    Réponses: 4
    Dernier message: 07/07/2006, 15h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo