Image toute noire en upload

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Image toute noire en upload

Re: Image toute noire en upload

par moogli » 21 oct. 2010, 08:55

Au fait Moogli,
est-tu sûr du code à ce niveau là :
            if ($tableau[2] == 3){
                    $png = false;
ca ne serait pas
            if ($tableau[2] == 3){
                    $png = true;
?
au vu du reste du code, oui, j'ai simplement copier collé ton code et modifié ce qui ne fonctionnait pas, j'ai pas "vue" ce détails.

Je pense un peu comme AB il est préférable de comprendre complètement le code que l'on bidouille, si non autant utiliser un code qui a été indiqué fonctionnel. Le but étant d'éviter d'éventuel soucis ensuite (pas forcément de "hack" mais juste de maintenance du code).

@+

Re: Image toute noire en upload

par AB » 20 oct. 2010, 23:54

Je voudrais pas insister mais en même temps ... si c'est pour utiliser un code qui n'est pas de toi (et que tu ne comprends pas) tu ferais aussi bien d'utiliser la classe que je t'ai mise en lien dans mon message précédent car tu pourrais faire bien plus de choses plus facilement et sans avoir à toucher au code.

Re: Image toute noire en upload

par sam01 » 20 oct. 2010, 21:57

Au fait Moogli,

est-tu sûr du code à ce niveau là :

            if ($tableau[2] == 3){
                    $png = false;

ca ne serait pas

            if ($tableau[2] == 3){
                    $png = true;

?

Re: Image toute noire en upload

par AB » 20 oct. 2010, 18:06

Alternativement tu peux voir aussi du côté de cette classe qui offre de multiples possibilités et gestion des erreurs.

Cela dit, c'est surtout le temps de l'upload qui est long et il n'y a pas grand chose à faire sur ce point.

Re: Image toute noire en upload

par sam01 » 20 oct. 2010, 09:50

Bonjour moogli et je te dois un grand merci parceque maintenant ça fonctionne nickel !!!

Je ne sais c'est qui à fait que ça marche mais ça me va parfaitement (code à garder précieusement :wink: )

Il y a juste une chose qui m'embête un peut, c'est que le chargement des photos prend beaucoup de temps. je suppose que le remaniement des images prend de la CPU au niveau serveur.

J'ai un peu peur que ce temps d'attente fasse fuir les internautes....

Je ne sais s'il y a un moyen d'optimiser ce temps...

Re: Image toute noire en upload

par moogli » 19 oct. 2010, 21:42

salut,

j'ai testé (et un peu corrigé) ton code.
Je n'ai pas testé la partie MySQL.
Les images png et jpg sont bien récupérées et retaillées.

il y avait des erreurs au niveau des nom de fichier (pas de cohérence entre le code png et jpg).

Comme l'indique stealth35, il y a beaucoup de chose à faire pour éviter les soucis (par exemple tester le type mime plutôt que l'extension pour être "certain" qu'il s'agisse d'une image et pas d'un fichier php qui à été renommé (ou quoi que soit d'autre).

plus d'info => http://www.phpfrance.com/tutoriaux/inde ... e-fichiers

@+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
   <head>
       <title>test</title>
           <meta name="description" content="test"/>
           <meta name="keywords" content="test"/>
       <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
           <META NAME="revisit-after" CONTENT="7 day">
           <META NAME="Robots" CONTENT="all">
       <META NAME="language" CONTENT="FR">
           <link rel="stylesheet" media="screen" type="text/css" title="Design sombre" href="styles\styles.css" />

       
   </head> 
   <!--commentaire-->
<body>
<form method="POST" action="" enctype="multipart/form-data">
<!-- Limiter la taille des fichiers à 500Ko -->
<fieldset>
<legend>Envoi de fichiers</legend>
<!-- champs d'envoi de fichier, de type file -->
<p><label for="up_photo">Photo :</label><input type="file" name="up_photo" /></p>
<!-- bouton d'envoi -->
<p><input type="submit" name="envoi" value="Envoyer les fichiers" /></p>
</fieldset>
</form> 
</body>
</html
<?php
/* Ajout des 3 lignes ci dessous que l'on avait pas*/
$dest_dossier ='imagestest';
$dest_fichier = 'final';
$dest_dossier_mini = 'imagesmini';
$max_size='1000000000';// A corriger, j'ai mis un chiffre exubérent pour en pas être emmerd*
 if(isset($_FILES['up_photo'])){
      unset($erreur);
      $extensions_ok = array('png', 'PNG', 'jpg', 'jpeg', 'JPEG', 'JPG');
          // on défini une variable $ratio qui vaudra 150 dans notre cas (150 pixels).
          // En fait, pour nos miniatures, nous allons respecter le ratio de l'image originale, mais nous allons forcer sa taille à 150 pixels,
          // soit en hauteur soit en largeur (tout dépend de l'orientation de notre image : paysage ou portrait).  
         
          $ratio = 50; // pour les miniatures
          $Wmax = 300;   // largeur maximale voulue (pour la photo d'origine)
          $Hmax = 300;   // hauteur maximale voulue ( pour la photo d'origine)

          // Création des dossiers
       
          if (!file_exists($dest_dossier)){
                mkdir ($dest_dossier, 0777);
          }
          if (!file_exists($dest_dossier_mini)){
                mkdir ($dest_dossier_mini, 0777);
          }
          // on compte d'abord le nombre d'image dans le répertoire
          $num_images = count_files($dest_dossier);// Pas testé car je n'ai pas la fonction
		  //$num_images=5; <= pour le test
        if ($num_images < 10){
           // on teste si le champ permettant de soumettre un fichier est vide ou non
                if (empty($_FILES['up_photo']['tmp_name'])){
                        // si oui, on affiche un petit message d'erreur
                        $erreur[] = $txt0103;
                }
                else{
                        // on examine le fichier uploadé en récupérant de nombreuses informations sur ce fichier
                        //(je vous suggère de regarder la documentation de la fonction getimagesize pour de plus amples informations)
                        $tableau = @getimagesize($_FILES['up_photo']['tmp_name']);
                        $W_Src = $tableau[0];  // largeur
                        $H_Src = $tableau[1];  // hauteur
                        if ($tableau == FALSE){
                                // si le fichier uploadé n'est pas une image, on efface le fichier uploadé et on affiche un petit message d'erreur
                                unlink($_FILES['up_photo']['tmp_name']);
                                $erreur[] = $txt0104;
                     }
                     else{
                                // vérifications de l'extention
                                if( !in_array( substr(strrchr($_FILES['up_photo']['name'], '.'), 1), $extensions_ok ) ){
                                        $erreur[] = $txt0105;
                                }
                                elseif( file_exists($_FILES['up_photo']['tmp_name'])
                                        and filesize($_FILES['up_photo']['tmp_name']) > $max_size){
                                        $erreur[] = $txt0106;
                                }
                                // on détremine la taille de la photo
                                $up_taille = $_FILES['up_photo']['size'];
                                $dest_fichier = basename($_FILES['up_photo']['name']);// cela donne le même résultat que la commande ==> $_FILES['up_photo']['name'];
                                // $extension = strrchr(strtolower($dest_fichier), '.');
                                // formatage nom fichier
                                // enlever les accents
                                $dest_fichier = strtr($dest_fichier,
                                'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
                                'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
                                // remplacer les caracteres autres que lettres, chiffres et point par _
                                $dest_fichier = preg_replace('/([^.a-z0-9]+)/i', '_', $dest_fichier);
                                // on vérifie si le fichier n'est pas déjà présent :
                                $chemin_fic = $dest_dossier . $dest_fichier;
                                // Vérification de l'existence du fichier dans le répertoire et si besoin renommage du fichier
                                // $chemin_fic = Rename_fich($chemin_fic,$dest_fichier);
                                /*if (file_exists($chemin_fic))
                                {
                                        $dest_fichier = 'DUP'.$dest_fichier;
                                        echo 'dest_fichier = '.$dest_fichier;
                                }*/
                                // si l'image n'est ni un jpeg, ni un png, on supprime  le fichier uploadé et on affiche le message d'erreur 
                                if (!($tableau[2] == 2 || $tableau[2] == 3)){
                                         unlink($_FILES['up_photo']['tmp_name']);
                                         $erreur[] = $txt0107;
                                }
                        }
                }
        }
        else{
                $erreur[] = $txt0108;
        }
      // copie du fichier
      if(!isset($erreur)){
      // copie du fichier
        if (move_uploaded_file($_FILES['up_photo']['tmp_name'], $dest_dossier .'/'. $dest_fichier)) {
         // à ce moment on met le fichier sur le serveur                      
            // A- LARGEUR ET HAUTEUR maxi fixes
            if ($Wmax != 0 && $Hmax != 0) {
            $ratiox = $W_Src / $Wmax;  // ratio en largeur
            $ratioy = $H_Src / $Hmax;  // ratio en hauteur
            $ratiobis = max($ratiox,$ratioy);  // le plus grand
            $W = $W_Src/$ratiobis;
            $H = $H_Src/$ratiobis;  
            $condition = ($W_Src>$W) || ($H_Src>$H);  // 1 si vrai (true)
            }
            // Creation de l'image miniature
            $jpeg = false;
            $png = false;
             // si notre image est de type jpeg
            if ($tableau[2] == 2){
                    $jpeg = true;
                    // on crée une image à partir de notre grande image à l'aide de la librairie GD
                    $src = imagecreatefromjpeg($dest_dossier.'/'.$dest_fichier);
                    // $Ress_Src = imagecreatefromjpeg($rep_Src.$img_Src);
                    // $Ress_Dst = ImageCreateTrueColor($W,$H);
                    // on teste si notre image est de type paysage ou portrait
                    if ($tableau[0] > $tableau[1]){
                            $im = imagecreatetruecolor(round(($ratio/$tableau[1])*$tableau[0]), $ratio);
                            imagecopyresampled($im, $src, 0, 0, 0, 0, round(($ratio/$tableau[1])*$tableau[0]), $ratio, $tableau[0], $tableau[1]);
                            if ($condition == 1) {
                            // $im_gd = imagecreatetruecolor(round(($ratiobis/$tableau[1])*$tableau[0]), $ratiobis);
                            // imagecopyresampled($im_gd, $src, 0, 0, 0, 0, round(($ratiobis/$tableau[1])*$tableau[0]), $ratiobis, $tableau[0], $tableau[1]);}
                            $im_gd = imagecreatetruecolor($W,$H);
                            // ImageCopyResampled($Ress_Dst, $Ress_Src, 0, 0, 0, 0, $W, $H, $W_Src, $H_Src);
                            ImageCopyResampled($im_gd, $src, 0, 0, 0, 0, $W, $H, $W_Src, $H_Src);}
                    }
                    else{
                            $im = imagecreatetruecolor($ratio, round(($ratio/$tableau[0])*$tableau[1]));
                            imagecopyresampled($im, $src, 0, 0, 0, 0, $ratio, round($tableau[1]*($ratio/$tableau[0])), $tableau[0], $tableau[1]);

                            if ($condition == 1) {
                            $im_gd = imagecreatetruecolor($W,$H);
                            // imagecopyresampled($im_gd, $src, 0, 0, 0, 0, $ratiobis, round($tableau[1]*($ratiobis/$tableau[0])), $tableau[0], $tableau[1]);}
                            ImageCopyResampled($im_gd, $src, 0, 0, 0, 0, $W, $H, $W_Src, $H_Src);}
                    }
                    // on copie notre fichier généré dans le répertoire des miniatures
                    imagejpeg ($im, $dest_dossier_mini.'/'.$dest_fichier);
                    if ($condition == 1) {
                    imagejpeg ($im_gd, $dest_dossier.'/'.$dest_fichier);}
            }
            if ($tableau[2] == 3){
                    $png = false;
                    $src = imagecreatefrompng($dest_dossier.'/'.$dest_fichier);
                    if ($tableau[0] > $tableau[1]){
                            $im = imagecreatetruecolor(round(($ratio/$tableau[1])*$tableau[0]), $ratio);
                            imagecopyresampled($im, $src, 0, 0, 0, 0, round(($ratio/$tableau[1])*$tableau[0]), $ratio, $tableau[0], $tableau[1]);
                    }
                    else{
                            $im = imagecreatetruecolor($ratio, round(($ratio/$tableau[0])*$tableau[1]));
                            imagecopyresampled($im, $src, 0, 0, 0, 0, $ratio, round($tableau[1]*($ratio/$tableau[0])), $tableau[0], $tableau[1]);
                    }
                    imagepng ($im, $dest_dossier_mini.'/'.$dest_fichier);
            }
            // on se connecte à MySQL
            /**************** Partie non testée *************/
            include ('connect.php');                                       
            // on détermine d'abord l'id_log
            $sqla = sprintf("SELECT id_log FROM flatforswap_logement WHERE id_adh='".$_SESSION['id_adh']."'");
            $reqa = mysql_query($sqla) or die('Erreur SQL : <br />'.$sqla);
            $dataa = mysql_fetch_assoc($reqa);
            $id_log = $dataa['id_log'];
            // on peut maintenant insérer les données da ns la table photo
            $date = date("Y-m-d");
            $sqlb = sprintf("insert into flatforswap_photo(id_log,up_nom,up_titre,up_taille,up_date) values(%s, %s, %s, %s, %s)", quote_smart($id_log), quote_smart($dest_fichier), quote_smart($_POST["up_titre"]), quote_smart($up_taille), quote_smart($date));
            $reqb = mysql_query($sqlb) or die('Erreur SQL : <br />'.$sqlb);
            /**************** Fin de partie non testée *************/
            // on peut renommer le fichier
            if($jpeg){
            $ext = '.jpeg';}
            else{
            $ext = '.png';}
          /**************** Partie non testée *************/
            rename($dest_dossier.'/'.$dest_fichier, $dest_dossier.'/'.mysql_insert_id().$ext);
            rename($dest_dossier_mini.'/'.$dest_fichier, $dest_dossier_mini.'/'.mysql_insert_id().$ext);

            $sqlc = sprintf("update flatforswap_photo set up_nom=%s where id_pho=%s", quote_smart(mysql_insert_id().$ext), quote_smart(mysql_insert_id()));
            $reqc = mysql_query($sqlc) or die('Erreur SQL : <br />'.$sqlc);
            /**************** Fin de partie non testée *************/
            }
      }
}
?>

Re: Image toute noire en upload

par sam01 » 19 oct. 2010, 17:10

tu as mieux à proposer, je suis tout ouïe...

Il me semble que dans developpez.com

Re: Image toute noire en upload

par stealth35 » 19 oct. 2010, 16:44

heu, atttends là c'est un intérrogatoire ou quoi :wink:

Pourquoi veux-tu savoir ou je l'ai choppé ?

Je dois t'avouer que je ne sais plus trop... Ca fait déjà un bout de temps que je travaille avec en local et ça fonctionne parfaitement en local.

C'est maintenant que je me rends compte qu'il ne fonctionne pas chez mon hébergeur...
parce que ca fais plein de fois que je vois se genre de code, et que je voudrais envoyer un mail a l'auteur parce que c'est immonde, et que y'a plein de personne comme toi qui on des soucis avec :wink:

Re: Image toute noire en upload

par sam01 » 19 oct. 2010, 16:42

heu, atttends là c'est un intérrogatoire ou quoi :wink:

Pourquoi veux-tu savoir ou je l'ai choppé ?

Je dois t'avouer que je ne sais plus trop... Ca fait déjà un bout de temps que je travaille avec en local et ça fonctionne parfaitement en local.

C'est maintenant que je me rends compte qu'il ne fonctionne pas chez mon hébergeur...

Re: Image toute noire en upload

par stealth35 » 19 oct. 2010, 14:52

tu la chopper ou ce script ?

Re: Image toute noire en upload

par sam01 » 19 oct. 2010, 14:44

Montres nous le code qui utilise GD je pense que cela sera plus simple à la vue de tes lacunes techniques. :)
heu c'est bien pour ça que je suis sur le forum :wink:

Voici le code



 if(isset($_FILES['up_photo']))
      {
 
	   
      unset($erreur);
   
      $extensions_ok = array('png', 'PNG', 'jpg', 'jpeg', 'JPEG', 'JPG');
   
	  
	  // on défini une variable $ratio qui vaudra 150 dans notre cas (150 pixels). 
	  // En fait, pour nos miniatures, nous allons respecter le ratio de l'image originale, mais nous allons forcer sa taille à 150 pixels, 
	  // soit en hauteur soit en largeur (tout dépend de l'orientation de notre image : paysage ou portrait).  
	  
	  $ratio = 50; // pour les miniatures 
	  $Wmax = 300;   // largeur maximale voulue (pour la photo d'origine)
	  $Hmax = 300;   // hauteur maximale voulue ( pour la photo d'origine)

	  // Création des dossiers
	
	  if (!file_exists($dest_dossier)) 
	  {
		mkdir ($dest_dossier, 0777); 
	  }
	  
	  if (!file_exists($dest_dossier_mini)) 
	  {
		mkdir ($dest_dossier_mini, 0777); 
	  }
	  
	  // on compte d'abord le nombre d'image dans le répertoire
	  
	  $num_images = count_files($dest_dossier);
	  
	if ($num_images < 10)
	{
	  
	  
	   // on teste si le champ permettant de soumettre un fichier est vide ou non
		if (empty($_FILES['up_photo']['tmp_name'])) 
		{
			// si oui, on affiche un petit message d'erreur
			$erreur[] = $txt0103;
		}
		else
		{
		

			// on examine le fichier uploadé en récupérant de nombreuses informations sur ce fichier 
			//(je vous suggère de regarder la documentation de la fonction getimagesize pour de plus amples informations) 
	  
			$tableau = @getimagesize($_FILES['up_photo']['tmp_name']);
		    $W_Src = $tableau[0];  // largeur
			$H_Src = $tableau[1];  // hauteur
	    
			if ($tableau == FALSE) 
			{ 
				// si le fichier uploadé n'est pas une image, on efface le fichier uploadé et on affiche un petit message d'erreur 
				unlink($_FILES['up_photo']['tmp_name']); 
				$erreur[] = $txt0104; 
		     }
			 else
			 {
  
				// vérifications de l'extention
  
				if( !in_array( substr(strrchr($_FILES['up_photo']['name'], '.'), 1), $extensions_ok ) )
 
				{
					$erreur[] = $txt0105;
				}
  
					elseif( file_exists($_FILES['up_photo']['tmp_name'])
  
					and filesize($_FILES['up_photo']['tmp_name']) > $max_size)
  
				{
					$erreur[] = $txt0106;
				}
	  
				// on détremine la taille de la photo
	  
				$up_taille = $_FILES['up_photo']['size'];
				
				$dest_fichier = basename($_FILES['up_photo']['name']);// cela donne le même résultat que la commande ==> $_FILES['up_photo']['name'];

				// $extension = strrchr(strtolower($dest_fichier), '.');
				
				// formatage nom fichier
				// enlever les accents

				$dest_fichier = strtr($dest_fichier,

				'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
				'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
 
				// remplacer les caracteres autres que lettres, chiffres et point par _
 
				$dest_fichier = preg_replace('/([^.a-z0-9]+)/i', '_', $dest_fichier);
				
				// on vérifie si le fichier n'est pas déjà présent : 
	  
				$chemin_fic = $dest_dossier . $dest_fichier;
				
				// Vérification de l'existence du fichier dans le répertoire et si besoin renommage du fichier
            
				// $chemin_fic = Rename_fich($chemin_fic,$dest_fichier);
		  
			
				/*if (file_exists($chemin_fic)) 
				{
					$dest_fichier = 'DUP'.$dest_fichier;
					echo 'dest_fichier = '.$dest_fichier;
				}*/
				// si l'image n'est ni un jpeg, ni un png, on supprime  le fichier uploadé et on affiche le message d'erreur
				 
				if (!($tableau[2] == 2 || $tableau[2] == 3)) 
				{ 
					 unlink($_FILES['up_photo']['tmp_name']); 
					 $erreur[] = $txt0107;
				} 
				
			}
		}
	}
	else
	{
		$erreur[] = $txt0108;
	}
 
      // copie du fichier
  
      if(!isset($erreur))
 
      {
 
      // copie du fichier
	
			if (move_uploaded_file($_FILES['up_photo']['tmp_name'], $dest_dossier . $dest_fichier)) // à ce moment on met le fichier sur le serveur
			{
				
				// A- LARGEUR ET HAUTEUR maxi fixes
				if ($Wmax != 0 && $Hmax != 0) {
				$ratiox = $W_Src / $Wmax;  // ratio en largeur
				$ratioy = $H_Src / $Hmax;  // ratio en hauteur
				$ratiobis = max($ratiox,$ratioy);  // le plus grand
				$W = $W_Src/$ratiobis;
				$H = $H_Src/$ratiobis;   
				$condition = ($W_Src>$W) || ($H_Src>$H);  // 1 si vrai (true)
				}     
				
				// Creation de l'image miniature 
				$jpeg = false;
				$png = false;
				
				 // si notre image est de type jpeg 
				if ($tableau[2] == 2) 
				{ 
					$jpeg = true;
					// on crée une image à partir de notre grande image à l'aide de la librairie GD 
					$src = imagecreatefromjpeg($dest_dossier.'/'.$dest_fichier); 
					
					// $Ress_Src = imagecreatefromjpeg($rep_Src.$img_Src);
					// $Ress_Dst = ImageCreateTrueColor($W,$H);
					// on teste si notre image est de type paysage ou portrait 
					if ($tableau[0] > $tableau[1]) 
					{ 
						$im = imagecreatetruecolor(round(($ratio/$tableau[1])*$tableau[0]), $ratio); 
						imagecopyresampled($im, $src, 0, 0, 0, 0, round(($ratio/$tableau[1])*$tableau[0]), $ratio, $tableau[0], $tableau[1]);
						
						if ($condition == 1) {
						// $im_gd = imagecreatetruecolor(round(($ratiobis/$tableau[1])*$tableau[0]), $ratiobis); 
						// imagecopyresampled($im_gd, $src, 0, 0, 0, 0, round(($ratiobis/$tableau[1])*$tableau[0]), $ratiobis, $tableau[0], $tableau[1]);}
						$im_gd = imagecreatetruecolor($W,$H);
						// ImageCopyResampled($Ress_Dst, $Ress_Src, 0, 0, 0, 0, $W, $H, $W_Src, $H_Src); 
						ImageCopyResampled($im_gd, $src, 0, 0, 0, 0, $W, $H, $W_Src, $H_Src);}
					} 
					else 
					{ 
						$im = imagecreatetruecolor($ratio, round(($ratio/$tableau[0])*$tableau[1])); 
						imagecopyresampled($im, $src, 0, 0, 0, 0, $ratio, round($tableau[1]*($ratio/$tableau[0])), $tableau[0], $tableau[1]);
						
						if ($condition == 1) {
						$im_gd = imagecreatetruecolor($W,$H);
						// imagecopyresampled($im_gd, $src, 0, 0, 0, 0, $ratiobis, round($tableau[1]*($ratiobis/$tableau[0])), $tableau[0], $tableau[1]);}
						ImageCopyResampled($im_gd, $src, 0, 0, 0, 0, $W, $H, $W_Src, $H_Src);}
					} 
					// on copie notre fichier généré dans le répertoire des miniatures 
					imagejpeg ($im, $dest_dossier_mini.'/'.$dest_fichier);
					if ($condition == 1) {
					imagejpeg ($im_gd, $dest_dossier.'/'.$dest_fichier);}
				} 
				
				if ($tableau[2] == 3) 
				{ 
					$png = false;
					$src = imagecreatefrompng($dir.'/'.$file_upload); 
					if ($tableau[0] > $tableau[1]) 
					{ 
						$im = imagecreatetruecolor(round(($ratio/$tableau[1])*$tableau[0]), $ratio); 
						imagecopyresampled($im, $src, 0, 0, 0, 0, round(($ratio/$tableau[1])*$tableau[0]), $ratio, $tableau[0], $tableau[1]); 
					} 
					else 
					{ 
						$im = imagecreatetruecolor($ratio, round(($ratio/$tableau[0])*$tableau[1])); 
						imagecopyresampled($im, $src, 0, 0, 0, 0, $ratio, round($tableau[1]*($ratio/$tableau[0])), $tableau[0], $tableau[1]); 
					} 
					imagepng ($im, $dir_mini.'/'.$file_upload); 
				} 
				
				


				// on se connecte à MySQL 
					include ('connect.php');
					
										
					// on détermine d'abord l'id_log 
					
					$sqla = sprintf("SELECT id_log FROM flatforswap_logement WHERE id_adh='".$_SESSION['id_adh']."'");
					$reqa = mysql_query($sqla) or die('Erreur SQL : <br />'.$sqla);
					$dataa = mysql_fetch_assoc($reqa);
					$id_log = $dataa['id_log'];
					
					// on peut maintenant insérer les données da ns la table photo
					
					$date = date("Y-m-d"); 
															
					$sqlb = sprintf("insert into flatforswap_photo(id_log,up_nom,up_titre,up_taille,up_date) values(%s, %s, %s, %s, %s)", quote_smart($id_log), quote_smart($dest_fichier), quote_smart($_POST["up_titre"]), quote_smart($up_taille), quote_smart($date));
					$reqb = mysql_query($sqlb) or die('Erreur SQL : <br />'.$sqlb);
					
					// on peut renommer le fichier
					
					if($jpeg){
					$ext = '.jpeg';}
					else{
					$ext = '.png';}
					
										
					rename($dest_dossier.'/'.$dest_fichier, $dest_dossier.'/'.mysql_insert_id().$ext); 
					rename($dest_dossier_mini.'/'.$dest_fichier, $dest_dossier_mini.'/'.mysql_insert_id().$ext); 
					
					$sqlc = sprintf("update flatforswap_photo set up_nom=%s where id_pho=%s", quote_smart(mysql_insert_id().$ext), quote_smart(mysql_insert_id()));
					$reqc = mysql_query($sqlc) or die('Erreur SQL : <br />'.$sqlc);
					
					
			}
		
 
      }

      }


Re: Image toute noire en upload

par xTG » 19 oct. 2010, 13:01

Montres nous le code qui utilise GD je pense que cela sera plus simple à la vue de tes lacunes techniques. :)

Re: Image toute noire en upload

par sam01 » 19 oct. 2010, 12:49

Ben si...

Tu parles de ça

	
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
   <head>
       <title>test</title>
	   <meta name="description" content="test"/>
	   <meta name="keywords" content="test"/>
       <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
	   <META NAME="revisit-after" CONTENT="7 day">
	   <META NAME="Robots" CONTENT="all">
       <META NAME="language" CONTENT="FR">
	   <link rel="stylesheet" media="screen" type="text/css" title="Design sombre" href="styles\styles.css" />

	
   </head>
   
   <!--commentaire-->

Re: Image toute noire en upload

par stealth35 » 19 oct. 2010, 11:40

C'est quoi le header ?
c'est pas toi qu'a fait le fichier php ?

Re: Image toute noire en upload

par sam01 » 19 oct. 2010, 11:29

C'est quoi le header ?