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

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

    Informations forums :
    Inscription : Mai 2010
    Messages : 23
    Points : 6
    Points
    6
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    Pourquoi fais-tu un redimensionnement 1:1 ?

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

    Informations forums :
    Inscription : Mai 2010
    Messages : 23
    Points : 6
    Points
    6
    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 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
    Points : 206
    Points
    206
    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
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 23
    Points : 6
    Points
    6
    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 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
    Points : 206
    Points
    206
    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)

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

    Informations forums :
    Inscription : Mai 2010
    Messages : 23
    Points : 6
    Points
    6
    Par défaut
    c'est une applet qui les upload 1 par 1 a la suite, pas de probleme a ce niveau la,
    ensuite j'ai bien dis que j'ai vérifié mon fichier uploadé, et il est OK, et pour le type , comme dit dans mon premier post en general ce sont des personnes qui upload des photos de leur appareil photo , donc principalement du JPG
    ( pratiquement que ca a mon avis)

    voici la fonction de redimensionnement :
    (parametres :
    $chemin = chemin et nom du fichier destination
    $imageFile = fichier(uploadé) en entree
    $newLength=longueur/largeur max de l'image redimensionnee
    $imageType = type de l'image)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
     
    // redimensionne une image , si newWidth =0 , pas de redimensionnement
    	public function redimension($imageFile='',$imageType='jpg',$chemin='',$newLength=0)
    	{
    		set_time_limit(0);
    		$imageOK=true;
    		$f = new fileObject();
     
    		switch($imageType)
    		{
    			case 'gif':
    				$im=imagecreatefromgif($imageFile);
    			break;
     
    			case 'jpg':
    				// attention pour les jpg , si on ne les redimensionne pas , on va se contenter de la copier (pour essayer d'eviter les problemes d'images tronquees)
    				if($newLength!=0)
    					$im=imagecreatefromjpeg($imageFile); 
    			break;
    			case 'peg': // pour les format 'jpeg' , cette detection devrait suffir
    					$im=imagecreatefromjpeg($imageFile);
    			break;
     
    			case 'png':
    				$im=imagecreatefrompng($imageFile);
    			break;
     
    			default:
    				echo 'format d\'image non supporté';
    				$imageOK=false;
    			break;
    		}
     
    		list($originalWidth, $originalHeight, $type, $attr) = getimagesize($imageFile);
     
    		if($newLength==0) // on ne redimensionne pas
    		{
    			$newWidth = $originalWidth;
    			$newHeight = $originalHeight;
     
     
    			if($imageType=='jpg')
    			{
    				// dans le cas d'une image jpg , on se contente de la copier
    				if(!copy($imageFile,$chemin))
    				{
    					$imageOK=false;
    				}
    				else
    				{
    					// verification du CRC
    					$i=0;
    					//echo "crc32 image file : ".$f->crc32_file($imageFile)."<br><br>";
    					//echo "crc32 chemin : ".$f->crc32_file($chemin)."<br><br>";
    					while(!($f->crc32_file($imageFile)==$f->crc32_file($chemin)))
    					{
    						copy($imageFile,$chemin);
    						$i++;
    						if($i>=5)
    						{
    							echo "il y a une erreur a la copie de l'image originale. Effacez l'image et retentez l'opération, si le problème persiste merci de contacter l'administrateur.<br>";
    							break;
    						}
    					}
    				}
     
    			}
    			else
    			{
    				$imDestination = imagecreatetruecolor( $newWidth, $newHeight);
    				imagecopyresampled( $imDestination, $im, 0, 0, 0, 0, $newWidth, $newHeight, $originalWidth, $originalHeight);
    				imagejpeg( $imDestination, $chemin, 100);
     
    				imagedestroy($im);
    				imagedestroy($imDestination);
    			}
    		}
    		elseif($originalWidth>$originalHeight)
    		{
    			/*if($originalWidth/$originalHeight>2.5)
    			{
    				// on admet qu'a ce ratio entre la longueur et la hauteur , on a affaire a une image panoramique, on va donc calculer les dimensions de la nouvelle image en fonction de sa hauteur
    				$newHeight = $newLength;
    				$newWidth     = round($originalWidth * $newHeight / $originalHeight);
    			}
    			else
    			{*/
    				$newWidth=$newLength;
    				$newHeight     = round($originalHeight * $newWidth / $originalWidth);
    			//}
    			$imDestination = imagecreatetruecolor( $newWidth, $newHeight);
    			imagecopyresampled( $imDestination, $im, 0, 0, 0, 0, $newWidth, $newHeight, $originalWidth, $originalHeight);
    			imagejpeg( $imDestination, $chemin, 100);
     
    			imagedestroy($im);
    			imagedestroy($imDestination);
    		}
    		else
    		{
    			$newHeight = $newLength;
    			$newWidth     = round($originalWidth * $newHeight / $originalHeight);
     
    			$imDestination = imagecreatetruecolor( $newWidth, $newHeight);
    			imagecopyresampled( $imDestination, $im, 0, 0, 0, 0, $newWidth, $newHeight, $originalWidth, $originalHeight);
    			imagejpeg( $imDestination, $chemin, 100);
     
    			imagedestroy($im);
    			imagedestroy($imDestination);
    		}
     
     
     
     
    		return $imageOK;
    	}

  8. #8
    Membre 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
    Points : 206
    Points
    206
    Par défaut
    Ta redim à l'air correcte, en tout cas pour du jpg, pour gif/png te manque des choses en cas de transparence.
    Le set_time_limit(0) sers a rien lors de la redim (à moins peu etre d'avoir un 25mhz).
    Supprime aussi ton crc check qui rime a rien, tu dois t'assurer de faire la copy seulement quand le fichier entierement uploadé, et une seule fois sera suffisant, utilise les fonctions is_uploaded_file et move_uploaded_file pour cela lors de l'upload.

    Quel taille raconte ton upload_max_filesize dans php.ini ?

    Test voir dans ton uploader un seul fichier jpg de petite taille tout frais sorti d'un éditeur d'image, cela fonctionne t'il ???

    Si ca marche pour certaines images, c'est soit que upload mal passé, soit image original de base déjà corrompu.
    Des images arrive a bien passer ou pas !!!?? apparament oui vu que tu dis 1-2 sur 20 qui foire par jour.

    Désolé, je vois rien d'autre, tout est la, vu que ton uploader à l'air de faire son taff, et que seulement quelque fichiers plante à la redim.

    Pire des cas, c'est ton serveur qui arrive plus à suivre lors redim... (et a priori il devrait finir par s'en sortir, avec du tps au pire)

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

    Informations forums :
    Inscription : Mai 2010
    Messages : 23
    Points : 6
    Points
    6
    Par défaut
    on est d'accord , c'est bizarre
    comme dit mon crc32 sert a verifier s'il y a une difference entre le fichier uploadé et le fichier "original" , vu qu'en principe apres je supprime les fichiers uploadés ( desactivé pour le moment donc)
    le set_time_limit je l'ai rajouté par apres quand les problemes ont commencés , au cas ou, mais effectivement ca n'a pas aidé
    ensuite comme dit encore une fois , j'utilise une applet donc pas de upload_max_filesize,etc ..
    l'applet valide le formulaire une fois les upload effectués donc on arrive bien au bout ( vu que le fichier uploadé est ok) et le redimensionnement se fait une fois ce formulaire validé
    bref on tourne en rond (oui oui c'est un probleme qui n'arrive pas tout le temps , mais pour un site dont le but est de pouvoir uploader des images c'est inacceptable, ... j'ai fais des verif , cela ne depend pas de la personne qui upload, ni de la taille du fichier) ... je vais voir avec l'hebergeur pour qu'il verifie le materiel peut etre


    je penche aussi pour ton "pire des cas" , se peut il qu'apache intervienne quelque part au niveau de la memoire utilisée ? se peut il qu'un manque de memoire ou de memoire saturée puisse provoquer ca ? en principe il y a un swap ... ( sur le serveur il y a 2 sites importants et 2-3 autres sites rarement consultés , plus un intranet ou accedent plusieurs personnes et des transfert ftp potentiels vers d'autres serveur, et il fait aussi serveur de mail ) avec htop j'ai vu des pointes de charges de cpu , mais ca retombe assez vite quand meme en principe a un niveau tres correcte...
    bref je vais aussi redemarrer le serveur cette nuit pour voir s'il y a du mieux

  10. #10
    Membre 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
    Points : 206
    Points
    206
    Par défaut
    Hummm l'ennui doit surement se trouver au moment de l'upload, fichier surement pas encore totalement envoyé, pis le serveur un peu encombré qui arrange pas les chose peu etre.

    Essaye voir de mettre un bidon sleep(), de je sais pas, genre 3-5 secondes pour testé, au début du php de l'envoi du formulaire, avant de faire la copy pis la redim.

    Ca permettra peu etre à l'uploader de finir son taff, avant que php commence le siens.

    Revient nous dire si bug tjrs ou/et si ta trouvé soluce.

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

    Informations forums :
    Inscription : Mai 2010
    Messages : 23
    Points : 6
    Points
    6
    Par défaut
    ouais un sleep bien placé peut peut-etre aider , je vais voir ca et je vous tient au courant

  12. #12
    Membre 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
    Points : 206
    Points
    206
    Par défaut
    je penche aussi pour ton "pire des cas" , se peut il qu'apache intervienne quelque part au niveau de la memoire utilisée ? se peut il qu'un manque de memoire ou de memoire saturée puisse provoquer ca ? en principe il y a un swap ...
    A priori pour foutre par terre le serveur, faut lui en demander vraiment pas mal, (selon quand meme la machine et les scripts), au pire voila il ralentirait pas mal selon la charge/scripts, mais devrait finir par s'en sortir.

    Et donc le sleep pourrait peu etre te sauver à ces moments de pointe + envoi formulaire. (voir éventuel sleep tant que server en charge)

    Le mieux pour régler tes histoires serait un uploader php/js.

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

    Informations forums :
    Inscription : Mai 2010
    Messages : 23
    Points : 6
    Points
    6
    Par défaut
    mmmh je vois ce que tu veux dire pour l'uploader php/js , mais c'est dans l'hypothese ou php irait plus vite que l'applet , j'ai quand meme un gros doute la dessus vu son fonctionnement... je vais voir deja ce que donne ce sleep et un redemarrage dans la nuit

  14. #14
    Membre 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
    Points : 206
    Points
    206
    Par défaut
    C'est dans l'hypothèse que c'est ton applet qui est a la traine (et visiblement du a la charge serveur quelque fois)
    Full php, bin ca ralentirai aussi, mais garderais le bon rythme pour que ce soit coordonné.

    Bref aplus, test deja le sleep parce que t'es pas sorti de l'auberge pour un uploader php/js multi fichiers maison.

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

    Informations forums :
    Inscription : Mai 2010
    Messages : 23
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par nextdev Voir le message
    C'est dans l'hypothèse que c'est ton applet qui est a la traine (et visiblement du a la charge serveur quelque fois)
    Full php, bin ca ralentirai aussi, mais garderais le bon rythme pour que ce soit coordonné.

    Bref aplus, test deja le sleep parce que t'es pas sorti de l'auberge pour un uploader php/js multi fichiers maison.
    bon voila , de retour de week end , et encore une image qui n'est pas passée malgres le sleep et le check du crc ( je viens de tester ma fonction en local, les crc entre l'image uploadée et l'image au format "original" corrompue sont pourtant différents)
    et donc l'image uploadée est pourtant ok ,


    je précise encore une chose :
    le redimensionnement de l'image "original" se fait avant celui pour l'image au format "grand" et celui au format "petit" , or , il arrive aussi que ce soit un de ces derniers qui soit corrompu alors que l'image "original" a bien ete copiee...
    bref je ne pense pas que cela viennent de l'applet dans tous les cas...

  16. #16
    Membre 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
    Points : 206
    Points
    206
    Par défaut
    Mouarrf...

    les crc entre l'image uploadée et l'image au format "original" corrompue sont pourtant différents et donc l'image uploadée est pourtant ok
    "corrompue sont pourtant différents" ??? Donc l'image uploadé n'est pas identique a l'original (celle avant envoi).

    le redimensionnement de l'image "original" se fait avant celui pour l'image au format "grand" et celui au format "petit" , or , il arrive aussi que ce soit un de ces derniers qui soit corrompu alors que l'image "original" a bien ete copiee...
    L'image original est uploadée puis copiée, OU uploadé puis redimensionné, afin d'ensuite en crée les petites autres ?

    J'ai moi aussi un instant épargné l'uploader, tourné en rond, mais au final je retombe quand meme toujours sur :
    "vu que ca marche pour certaines images, c'est soit que upload mal passé, soit image original de base déjà corrompu."
    Bon ce qui est louche, c'est un uploader qui marcherai quand il veux...
    Mais si ce n'était pas l'uploader, tu obtiendrais des fichier entier, manipulable via php sans souci. (si pas corrompu de base non plus...)

    Aussi ton test crc devient bidon si le fichier est mal uploadé, vu que tu n'obtient pas le bon original. Bref ca tu peu l'enlevé complet, faudrai que l'internaute te file le crc avant qu'il envoi son fichier !

    Je suppose que ca va etre dur de tester sur une autre machine avec tes internautes actuel...

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

    Informations forums :
    Inscription : Mai 2010
    Messages : 23
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par nextdev Voir le message
    Mouarrf...


    "corrompue sont pourtant différents" ??? Donc l'image uploadé n'est pas identique a l'original (celle avant envoi).


    L'image original est uploadée puis copiée, OU uploadé puis redimensionné, afin d'ensuite en crée les petites autres ?

    J'ai moi aussi un instant épargné l'uploader, tourné en rond, mais au final je retombe quand meme toujours sur :
    "vu que ca marche pour certaines images, c'est soit que upload mal passé, soit image original de base déjà corrompu."
    Bon ce qui est louche, c'est un uploader qui marcherai quand il veux...
    Mais si ce n'était pas l'uploader, tu obtiendrais des fichier entier, manipulable via php sans souci. (si pas corrompu de base non plus...)

    Aussi ton test crc devient bidon si le fichier est mal uploadé, vu que tu n'obtient pas le bon original. Bref ca tu peu l'enlevé complet, faudrai que l'internaute te file le crc avant qu'il envoi son fichier !

    Je suppose que ca va etre dur de tester sur une autre machine avec tes internautes actuel...
    en fait je crois qu'il y a une petite incompréhension:
    quand je parle du fichier uploadé , ce fichier est le fichier sur le serveur dans un repertoire fourre tout identifié par l'id utilisateur courant et un timestamp, en principe ce fichier est effacé une fois le redimensionnement ok ,
    ensuite je cree les formats "original" , "grand" et "mini" qui sont aleatoirement corrompus malgres l'ordre chronologique du traitement (le fichier "uploadé" est bien ok)

    c'est bien entre le fichier uploadé et le fichier de format original que je fais un test de crc

    donc vu mes problemes mon test CRC est tout a fait legitime, sauf que je me demande s'il fonctionne bien maintenant, je viens de rajouter une ligne pour m'envoyer un mail au cas ou il fait plus de 5 tentatives

    je rajoute aussi le stockage du chemin du fichier uploadé et je ne l'efface plus pour pouvoir regenerer a la main si besoin ... en attendant j'ai pas de reponse

  18. #18
    Membre 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
    Points : 206
    Points
    206
    Par défaut
    je viens de rajouter une ligne pour m'envoyer un mail au cas ou il fait plus de 5 tentatives
    Bonne idée, et tu vas meme envoyé dès que différent (il ne devrait l'etre aucune fois !), envoi aussi de quoi retrouver ce fameux fichier, pour par la suite le retester toi meme.

    Heuuu ou dans un fichier texte pour moins pomper.

  19. #19
    Membre 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
    Points : 206
    Points
    206
    Par défaut
    ensuite je cree les formats "original" , "gra....
    Tu crée ? C'est une avec la fonction copy() que tu crée l'original ? pour ensuite y faire un test crc par rapport a celui uploadé dans le rep fourre tout ??

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

    Informations forums :
    Inscription : Mai 2010
    Messages : 23
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par nextdev Voir le message
    Tu crée ? C'est une avec la fonction copy() que tu crée l'original ? pour ensuite y faire un test crc par rapport a celui uploadé dans le rep fourre tout ??
    oui c'est ca (le fichier "original" n'a d'original que les dimensions de la photo, en principe il est juste copier-renommé avec "copy")

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

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

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