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

Bibliothèques et frameworks PHP Discussion :

[GD] Images corrompues


Sujet :

Bibliothèques et frameworks PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 23
    Par défaut [GD] Images corrompues
    Bonjour,
    je vous soumet un probleme avec mon serveur sous linux debian etch, apache php5 et mysql

    en fait je bosse sur un site ou des personnes peuvent uploader des photos (plusieurs en meme temps grace a une applet ftp)
    ces photos sont ensuite placée dans un repertoire.
    A partir de la je fais un redimensionnement nul (pas de redimensionnement donc , je dis simplement a ma fonction qui utilise les fonctions gd(imagecreatefrom...etc) de me faire un redimensionnement de 1:1) et l'image se retrouve donc "copiee" dans un repertoire nommé "original"
    ensuite je redimensionne 2 fois a partir de l'image uploadee aux formats "petit" et "grand" et les places dans des repertoires respectivement du meme nom


    le probleme c'est que depuis quelques semaines j'ai de plus en plus d'images redimensionnées corrompues (les images s'affichent mais sont coupées par une bande noir ou comme si c'etait le negatif de la photo , sur une partie de la photo), cela 1 ou 2 fois par jour , sur 10-20 photos uploadées par jour

    au depart cela arrivais sur les images "originales" , j'ai donc remplacé ma fonction de redimensionnement , par la fonction "copy" de php pensant que je n'avait finalement pas besoin d'utiliser les fonctions de gd pour cette operation ( les photos uploadées sont en générales des photos provenant d'appareils photos numerique , donc assez grandes mais depassant rarement 2Mo)

    le remplacement de la fonction copy n'a pas suffit , le probleme survenait toujours (simplement en copiant !! :shock: )
    j'ai donc rajouté un test de CRC sur l'image uploadée et l'image copiée , si les CRC sont différents je retente la copie jusqu'a ce que le CRC soit bon , et cela dans une limite de 5 tentatives

    jusque ici je n'ai plus de probleme pour le format "original" par contre depuis peu je remarque que le probleme se pose sur les autres formats "petit" et "grand", je pense a mettre un bouton de regeneration, mais ca ne me semble pas suffisant, c'est vraiment bizzarre comme probleme je trouve

    j'ai rajouté la commande set_time_limit(0) au niveau des fonctions de redimensionnements , pas plus de resultat

    en effet je ne pense pas que cela soit normal , plusieurs possibilités je pense
    un manque de ram , une ram defectueuse (m'etonnerais quand meme , ca fait 2 mois que le serveur tourne , et il y a 2 sites assez consultés dessus) , un parametre de configuration dans apache ou php.ini ?

    si quelqu'un a deja eu ce genre de probleme ou a une idée , perso je suis un peu perdu, heeeeelp !

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Pourquoi fais-tu un redimensionnement 1:1 ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 23
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Pourquoi fais-tu un redimensionnement 1:1 ?
    Salut
    comme dit ca me permettait d'envoyer ma fonction de redimensionnement dans une boucle pour les 3 formats et donc chaque image redimensionnée se retrouve dans son dossier , sans avoir besoin de faire une exception

    mais vu les problemes, par la suite, dans le cas de l'image au format que j'ai appelé "original" donc le redimensionnement 1:1 , j'ai remplacé ma fonction de redimensionnement par la simple fonction "copy" de php. (et comme dit , ca n'a rien changé au probleme)

    en tout cas , merci a toi de t'interresser a mon souci plutot tres embetant

  4. #4
    Membre très actif
    Profil pro
    Inscrit en
    Février 2009
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 149
    Par défaut
    Salut,

    en fait je bosse sur un site ou des personnes peuvent uploader des photos (plusieurs en meme temps grace a une applet ftp)
    Ton probleme vient surement que tes fichiers sont mal uploadé.
    Plusieurs en meme temps ? Chaque fichier un par un ??
    Cela marche t'il avec 1 seul fichier ?

    j'ai donc rajouté un test de CRC sur l'image uploadée et l'image copiée , si les CRC sont différents je retente la copie jusqu'a ce que le CRC soit bon , et cela dans une limite de 5 tentatives
    Si l'image uploadé est corrompu, le CRC aura beau etre pareil, les futur "petit" et "grand" cree via gd seront foutus.
    Et l'image à uploader est-elle bonne aussi ? avant envoi
    Fait des test avec une image sur bonne sortie de paint, et une qui a foiré si tu peu t'en procurer une (pas venu de l'upload).


    Le redimensionnement 1:1 ça sers bien pour gagner de la place.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 23
    Par défaut
    Citation Envoyé par nextdev Voir le message
    Salut,


    Ton probleme vient surement que tes fichiers sont mal uploadé.
    Plusieurs en meme temps ? Chaque fichier un par un ??
    Cela marche t'il avec 1 seul fichier ?


    Si l'image uploadé est corrompu, le CRC aura beau etre pareil, les futur "petit" et "grand" cree via gd seront foutus.
    Et l'image à uploader est-elle bonne aussi ? avant envoi
    Fait des test avec une image sur bonne sortie de paint, et une qui a foiré si tu peu t'en procurer une (pas venu de l'upload).


    Le redimensionnement 1:1 ça sers bien pour gagner de la place.
    et bien en fait non , les fichiers uploadés sont OK (j'ai bien vérifié) , c'est vraiment l'etape de copie et de redimensionnement qui pose probleme.

  6. #6
    Membre très actif
    Profil pro
    Inscrit en
    Février 2009
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 149
    Par défaut
    Mouuaiss.... louche ton histoire.
    Sûr d'avoir bien tout reprit ce que j'ai dit ?

    Très important selon le script d'upload : "Cela marche t'il avec 1 seul fichier envoyé ?"

    Et d'ailleur c'est quoi ton espèce d'applet comme tu dis "plusieurs en meme temps grace a une applet ftp"

    Si php copie qqch, c'est que ta fonction copy fonctionne.
    Donc ce serai plus que la source est foireuse plutot qu'un souci dans tes install php/gd.
    As tu quand meme essayer de réinstaller gd sur ton serveur, gd qui a priori doit etre compilé avec php. Mais bon si ça a deja marché/marche pour certain fichier ce n'est pas ca.

    Balance dans ton uploader un fichier jpg tout frais sorti d'un éditeur d'image, cela fonctionne t'il !?

    jusque ici je n'ai plus de probleme pour le format "original"
    Donc la tu es sur que la fonction copy est OK ? Ton upload s'est bien passé, et tu a assurement le meme fichier que la source avant upload, pret a etre redim ?? (tu a test le fichier, ouvert, constaté pas corrompu, pas de partie noir, ou d'erreur lors ouverture avec logiciel image)

    Est ce sur un type specifique d'image que ca plante ? gif, jpg, png ?

    Dernier cas, tes internautes balance des images corrompu, la copy corrompu se fait, le fichier est quand meme soit disant lisible mais en realité manque qqch, donc ta copy fonctionne, arrive a te sortir une image "lisible", mais gd lui est foutu parceque image en réalité corrompu.

    Fait voir ton code pour la redimension ! (m'enfin si ca marche pour certaines images, c'est soit que upload mal passé, soit image original de base deja corrompu)

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 02/09/2015, 15h01
  2. Réponses: 1
    Dernier message: 05/09/2007, 13h47
  3. Problème d'images corrompues
    Par Oluha dans le forum Imagerie
    Réponses: 7
    Dernier message: 05/02/2007, 09h58
  4. Copy, filter et images corrompues
    Par Dinofly dans le forum ANT
    Réponses: 2
    Dernier message: 25/09/2006, 10h08

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