par
abelthorne » 25 mars 2008, 15:07
Bonjour,
Toujours sur le même sujet, j'ai un petit problème.
J'ai fait une fonction qui vérifie la mémoire nécessaire pour le traitement (redimensionnement) d'une image uploadée et qui la traite seulement si c'est possible vis-à-vis de la limite de mémoire sur le serveur.
Sur mon poste de développement, la limite est de 8M. Si j'uploade une grosse image (pas en taille de fichier mais en dimensions), pas de problème, j'affiche un message d'erreur.
Par contre, en faisant un test en ligne chez mon hébergeur, j'ai une limite mémoire de 40M et ça plante sur une image qui a l'air d'avoir besoin d'environ 33 Mo : j'ai le message d'erreur Fatal error: Out of memory (allocated 33292288) (tried to allocate 10368 bytes)
Néanmoins, je précise que je traite mon image trois fois à la suite dans le même fichier (1) recadrage, 2) redimensionnement sur cette version recadrée et 3) création d'une vignette à partir de l'image redimensionnée). Est-ce que ça viendrait du fait que PHP ne libère pas la mémoire ? et donc pour mes trois traitements je dépasserais la limite de 40 Mo ?
Si c'est bien le problème, peut-on forcer PHP à libérer la mémoire au milieu d'un script ?
Sinon, est-ce qu'il y a une autre limite de mémoire dans PHP dont j'ignore l'existence ?
Bonjour,
Toujours sur le même sujet, j'ai un petit problème.
J'ai fait une fonction qui vérifie la mémoire nécessaire pour le traitement (redimensionnement) d'une image uploadée et qui la traite seulement si c'est possible vis-à-vis de la limite de mémoire sur le serveur.
Sur mon poste de développement, la limite est de 8M. Si j'uploade une grosse image (pas en taille de fichier mais en dimensions), pas de problème, j'affiche un message d'erreur.
Par contre, en faisant un test en ligne chez mon hébergeur, j'ai une limite mémoire de 40M et ça plante sur une image qui a l'air d'avoir besoin d'environ 33 Mo : j'ai le message d'erreur [b]Fatal error: Out of memory (allocated 33292288) (tried to allocate 10368 bytes)[/b]
Néanmoins, je précise que je traite mon image trois fois à la suite dans le même fichier (1) recadrage, 2) redimensionnement sur cette version recadrée et 3) création d'une vignette à partir de l'image redimensionnée). Est-ce que ça viendrait du fait que PHP ne libère pas la mémoire ? et donc pour mes trois traitements je dépasserais la limite de 40 Mo ?
Si c'est bien le problème, peut-on forcer PHP à libérer la mémoire au milieu d'un script ?
Sinon, est-ce qu'il y a une autre limite de mémoire dans PHP dont j'ignore l'existence ?