1

Sujet : Impossible de télécharger plus de 8 Mo d'un coup

Bonjour,

D'abord merci pour ce script qui fonctionne à merveille.
J'au juste un petit souci : quand j'ajoute une dizaine de photos dans le panier et que j'essaie de télécharger, ça m'affiche le message d'erreur suivant :

Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 2972049 bytes) in /var/www/free.fr/f/3/prenom.nom/mesalbums/classes/pclzip.lib.php on line 2427

Quand je fais la même chose avec moins de fichiers, ça marche parfaitement.

Est-ce qu'il y a une limite en taille pour le téléchargement et si oui y a-t-il un moyen de la modifier ou la contourner ?

Merci de votre aide.
Marc

Re : Impossible de télécharger plus de 8 Mo d'un coup

Salut Marc,

Merci à toi d'utiliser AlBulles et de me complimenter smile.

Ce qui t'arrive est tout à fait normal je te rassure. Il se trouve que les hébergeurs limitent la quantité de mémoire vive utilisable pour un compte. En l'occurence pour toi, la taille mémoire que peut utiliser un de tes scripts est de 8Mo. Au delà, le script est arrêté et te donne l'erreur précédente. C'est pour cela que j'ai introduit dans le script une variable qui permet de limiter le nombre de fichiers dans le panier (changeable dans le fichier config.php). C'est à chaque utilisateur d'AlBulles de définir le nombre de fichiers max dans le panier en fonction de son hébergement et de la taille moyenne de ses fichiers.

Pour le moment je n'ai pas d'autre solution à proposer. J'étudie pour la version RC1 d'AlBulles la possibilité de limiter le panier non plus par nombre de fichier mais par taille de la future archive en fonction du quota autorisé par l'hébergeur. Je ne sais pas si je vais pouvoir arriver à mes fins mais je vais essayer wink.

Voilà, donc pour le moment, cela va être à toi d'adapter la limitation de fichiers dans le panier. Il sera bien évidemment impossible que cela soit 100% sans erreurs mais je n'ai pas mieux (il suffit de 4 images à 2Mo chacune et zou, l'erreur revient...). Tu peux toujours prévenir tes utilisateurs que s'ils ont l'erreur, c'est normal.

La version RC1 n'est pas pour tout de suite ; j'ai la version 0.6 à sortir avec les derniers correctifs et pour le moment j'ai trop de boulot avec mon taff pour m'y mettre. Mais je pense que j'aurais une version stable (1.0) au plus tard fin septembre.

Bonne soirée smile

-------------------------------
"Keyboard not detected, press a key to continue..."

WWW

3

Re : Impossible de télécharger plus de 8 Mo d'un coup

Merci SamRay pour cette réponse claire et rapide !

Re : Impossible de télécharger plus de 8 Mo d'un coup

Je t'en prie wink

-------------------------------
"Keyboard not detected, press a key to continue..."

WWW

5

Re : Impossible de télécharger plus de 8 Mo d'un coup

Salut !

D'abord bravo pour le boulot effectué !  ce script est vraiment sympa et pratique.

Mais ,et oui désolé y'a un mais wink , j'ai un problème avec le panier : mes photos font entre 3 et 4 Mo
et quand j'en mets dans le panier (une ou plusieurs) et que je de mande à télécharger, rien ne se passe.
La requête démarre, on vois la navigateur communiquer aprés rien ça s'arrète dans message d'erreur ou de
changement de page.

Le script tourne sur apache 2 et php4 sur un serveur perso donc je pense pas avoir limiter quoique ce soit, tout
est configuré par défaut.

Une petite idée sur le problème ?

merci et encore bravo

ph

Re : Impossible de télécharger plus de 8 Mo d'un coup

Salut et merci smile

Par défaut, la configuration de la limitation de mémoire pour un script est à 8Mo (php.ini > memory_limit = 8M). En mettant des images aussi lourdes, cette limite est donc vite atteinte !

Est-ce que dans ton php.ini, le paramétrage des affichages d'erreurs est bien comme ce qui suit :

error_reporting = E_ALL | E_NOTICE
display_errors = On

Sinon, si tu ne souhaites pas modifier ton php.ini, tu peux aussi mettre cette ligne de code dans ton fichier PHP :

error_reporting( E_ALL | E_NOTICE );

Ceci fait, retestes pour voir s'il affiche des erreurs.

-------------------------------
"Keyboard not detected, press a key to continue..."

WWW

7

Re : Impossible de télécharger plus de 8 Mo d'un coup

Bonjour,

Je rencontre le même pb de limitation à 8MB, et je trouve particulièrement dommage d'avoir une magnifique gestion de panier pour ne mettre que 5 photos dedans hmm
Alors l'informaticien qui est en moi se posait la qu suivante: ne serait-il pas possible de faire le zip petit à petit sur /tmp puis de l'envoyer à l'utilisateur? Ca éviterait d'avoir tout le zip en ram, et donc de tomber sur le pb...
Se posent les pb suivants:
- possibilité technique d'ajouter un fichier à zip
- quelle place est dispo sur /tmp sur les sites usuels (genre free.fr wink )
- quand effacer le fichier

Ayant déjà lourdement patché albulle, ça ne me dérange pas de prendre part au dvpt de ce point si nécessaire !

Merci

Re : Impossible de télécharger plus de 8 Mo d'un coup

Salut Olivier !

Olivier a écrit:

je trouve particulièrement dommage d'avoir une magnifique gestion de panier pour ne mettre que 5 photos dedans hmm

J'en suis le 1er désolé, crois le bien !

J'ai déjà longuement réfléchi à ce souci, et je n'arrive toujours pas à trouver de solution viable. C'est un problème complexe auquel je n'arrive toujours pas à répondre (bon, j'avoue, ça fait un moment que je n'y ai pas repensé). Dès lors qu'il faut ecrire des fichiers temporaires, la galère commence : accès concurrents à un même fichier, protection des accès, suppression des fichiers téléchargés, créer autant de fichiers que de sessions ouvertes mais risque de dépassement de quotas d'espace disque pour les hébergement limités, etc, etc, etc smile

La RAM evite tous ces problèmes, mais limite les paniers...Un jour peut être je trouverais la solution ultime !

-------------------------------
"Keyboard not detected, press a key to continue..."

WWW

9

Re : Impossible de télécharger plus de 8 Mo d'un coup

hmm....  véritable casse-tête...
Bon, ZIP parrait pas très bien supporter le mode "streaming" hmm , mais quid de les mettre en TAR ?
WinZip et les autres savent lire le TAR, le format n'est pas compliqué, et ça supporte le mode streaming! cool
De toute façon, des jpeg, ça sert à rien de les compresser... et puis au pire, on peut passer un coup de gzip sur le tar (gzip marche en streaming aussi, je crois)

PS: Je sais pas si t'as vu, mais Albulle avec des vidéos, ça marche du tonnerre wink
http://matheret.mariage.free.fr/mariage … ree/videos

Re : Impossible de télécharger plus de 8 Mo d'un coup

Moi j'ai une solution mais elle est un peut couteuse pour une galerie photos : louer un serveur dédié et changer le bridage de PHP dans le php.ini !

Je suis déjà dehors ....


-----> []

----------------------------------------------------------------------------------------------------------------------------
On peut être intelligent toute sa vie et stupide un instant.

WWW

Re : Impossible de télécharger plus de 8 Mo d'un coup

Lol, va t'en loin, Cyber, très loin !

Olivier, tu m'as perdu là wink. J'ai pas suivi le streaming et les zip/tar...Faut que tu m'expliques le fond de ta pensée, quitte à m'envoyer sur des liens avec de la doc.

Et non, je n'avais pas vu pour les vidéos ! Ca à l'air intéressant tes modifs ! Comment est-ce que ça fonctionne ? As-tu fais un script qui va automatiquement chercher une image dans les vidéos où fais-tu tes vignettes à la main ? Le coup du plugin pour visualiser, c'est sympa...sauf qu'ils ne l'ont pas porté pour Linux....Et là tout de suite, suis sur linux....je testerai plus tard.

-------------------------------
"Keyboard not detected, press a key to continue..."

WWW

12

Re : Impossible de télécharger plus de 8 Mo d'un coup

hey hey, désolé, c'est de la déformation professionnelle, j'en oublie de définir les termes wink
J'entends par streaming l'idée d'envoyer les données au client au fur et à mesure de la création de ces données. Pour que ça soit faisable, il faut que le fichier que tu envoies soit "progressif", ie que tu sois capable de déterminer le début sans avoir processé toutes tes entrées.
Par exemple, si tu envoies un fichier dont les premiers octets indiquent la taille des données qui suivent, tu ne peux pas commencer à envoyer le fichier avant d'avoir toutes les données sous la main pour en calculer la taille.

L'avantage de faire du streaming est que tu n'as pas besoin d'avoir toutes les données en RAM, puisque tu t'en débarrasses au fur et à mesure => la limitation à 8MB pourrait devenir non-bloquante.
Mais pour ça, ZIP n'est pas approprié puisqu'il nécessite des tables en début/milieu/fin de fichier, avec des index sur les fichiers.
TAR est à ma connaissance plus approprié puisque c'est une concaténation de fichiers, sans compression, et sans tableau descripteur => le php peut donc envoyer un fichier avec l'extension tar, puis l'entête du fichier A, le contenu du fichier A, l'entête du fichier B, le contenu du fichier B, etc...
GZIP est progressif lui aussi, et permettrait si besoin de compresser le tar sus-généré.

eu... je suis en train de me dire que j'ai plus embrouillé les esprits qu'autre chose hmm
Je vais me monter une démo chez moi, et on en reparle après tongue

--
Pour les vidéos, j'ai XXX.jpg/gif/png , XXX.avi et XXX_lowres.avi : ca me permet d'avoir la miniature que je veux (autoresize + incrustation de l'icone "vidéo" automatique) + la vidéo en 2 versions

13

Re : Impossible de télécharger plus de 8 Mo d'un coup

Olivier MATHERET a écrit:

Je vais me monter une démo chez moi, et on en reparle après tongue

cool ça marche! cool
Démo sur http://matheret.free.fr/demo

J'ai pas fait l'implem la plus optimisée possible, mais c'est pas forcément très grave.
J'ai aussi laissé tomber le GZ : je pars du principe que les photos et vidéos (but premier d'albulle) sont incompressibles

Re : Impossible de télécharger plus de 8 Mo d'un coup

Salut !

Mes respects ! Ca a l'air de marcher nickel ton idée !

En fait pour être précis, je sais ce qu'est le streaming...Ce que je ne sais pas c'est comment le mettre en oeuvre wink Mais je pense que je vais pas tarder à le savoir big_smile

N'hésite pas à poster un 'tit bout de code pour que je puisse me faire une idée smile

-------------------------------
"Keyboard not detected, press a key to continue..."

WWW

15

Re : Impossible de télécharger plus de 8 Mo d'un coup

un seul mot : RESPECT

-------------------------------
L'imbecile cherche toujours à enseigner alors que le sage lui cherche toujours à apprendre....

WWW

16

Re : Impossible de télécharger plus de 8 Mo d'un coup

ah! bah qu'est-ce que tu veux, on est ingénieur ou on l'est pas wink
Merci à tous les 2, en tous cas...

En gros, ça donne ça:

header( 'Content-type: application/x-tar');
// creation de l'objet du fichier tar
$oTar = new Tar( "php://output" ); // or stdout

Il y a aussi un calcul de taille avant ça, basé sur la même idée.
Tu veux que je te fournisse l'ensemble ?
Attention, je mets mon copyright lol

17

Re : Impossible de télécharger plus de 8 Mo d'un coup

PS : Samray et moi meme sommes ingénieur sad

désolé on sors

-------------------------------
L'imbecile cherche toujours à enseigner alors que le sage lui cherche toujours à apprendre....

WWW

Re : Impossible de télécharger plus de 8 Mo d'un coup

Ouep on est aussi ingé....:D Je te suis dehors kinou big_smile

-------------------------------
"Keyboard not detected, press a key to continue..."

WWW

19

Re : Impossible de télécharger plus de 8 Mo d'un coup

mais bon perso pour ma défense, je me suis spécialisé dans le développement de logiciel et pas dans le php ouffffffffffffff

-------------------------------
L'imbecile cherche toujours à enseigner alors que le sage lui cherche toujours à apprendre....

WWW

Re : Impossible de télécharger plus de 8 Mo d'un coup

tir au flanc....

-------------------------------
"Keyboard not detected, press a key to continue..."

WWW

21

Re : Impossible de télécharger plus de 8 Mo d'un coup

oui et alors

-------------------------------
L'imbecile cherche toujours à enseigner alors que le sage lui cherche toujours à apprendre....

WWW

22

Re : Impossible de télécharger plus de 8 Mo d'un coup

Si ca peut te rassurer, je suis dans la téléphonie mobile, donc rien à voir avec PHP

Tu les veux, mes belles sources copyrightées ?

23 Dernière modification par dckinou (02/03/2006 17h45m52s)

Re : Impossible de télécharger plus de 8 Mo d'un coup

et mince  : déprime :'(

Perso je viens bien de la doc sur ton concept, j'ai pas réussi à trouver une explication d'utilisation

-------------------------------
L'imbecile cherche toujours à enseigner alors que le sage lui cherche toujours à apprendre....

WWW

24

Re : Impossible de télécharger plus de 8 Mo d'un coup

de la ... DOC ??
ckoica ?
on peut en discuter par contre si tu veux...

WWW

25

Re : Impossible de télécharger plus de 8 Mo d'un coup

non c'est bon, j'ai cherché 3sec hier sans trouver, et ce matin apres 4 sec de recherche j'ai trouver un minimum de doc, mais encore bravo pour tes modifications sur AlBulle

-------------------------------
L'imbecile cherche toujours à enseigner alors que le sage lui cherche toujours à apprendre....

WWW