Problème d'enregistrement d'image au format PNG

Petit nouveau ! | 3 Messages

06 déc. 2011, 15:24

Bonjour,
Je suis entrain de créer un script pour upload et le redimensionnement d'images:
Avec les fichiers JPG tous ce passe bien, avec les fichiers PNG je n'ai aucun message d'erreur mais le fichiers n'est pas enregistré!
D'avance merci pour vos réponses...(je publie la totalité de mon script il y a un appel a du JS puis le formulaire et la partie PHP désolé pour la longueur...)

JS:

Code : Tout sélectionner

<script type="text/javascript"> <!-- function uploadInit() { // Je pré-charge l'image var oLoading = new Image(); oLoading.src = "loading.gif"; } function uploadRun() { document.getElementById("uploadStatus").innerHTML = "<img src=\"/default/images/loading.gif\" alt=\"OK...\" width=\"220\" height=\"19\" />"; document.getElementById("uploadSubmit").disabled = true; return true; } function uploadEnd(sError, sPath) { if(sError == 'OK') { document.getElementById("uploadStatus").innerHTML = "<a href=\"" + sPath + "\" title=\"Go to " + sPath + "\">t&eacute;l&eacute;chargement r&eacute;ussi!</a>"; } else { document.getElementById("uploadStatus").innerHTML = sError; } document.getElementById("uploadSubmit").disabled = false; } //--> </script>
HTML:
</head>
    <body onunload="uploadInit();">

<form id="uploadForm" enctype="multipart/form-data" action="test5.php" target="uploadFrame" onsubmit="uploadRun();" method="post" value="2097152">

<p>&nbsp;</p>  
              
                   <p><input id="uploadFile" name="uploadFile" type="file" />
                       
                   <input  id="uploadSubmit" type="submit" value="t&eacute;l&eacute;charger" /></p>

   
   <div align="left" class="vert" id="uploadStatus"></div>
                
        
        
        <iframe id="uploadFrame" name="uploadFrame" src="#"></iframe> 

</form>
PHP:
<?php

        if(isset($_FILES['uploadFile']))
        {

                if ($_FILES['uploadFile']['error'] <= 0)
                {
                        if ($_FILES['uploadFile']['size'] <= 2097152)
                        {
                            $filename = $_FILES['uploadFile']['name'];
 
                         
							$path = pathinfo($filename);
				
							$filesext = $path['extension'];
							
                            $filesext = strtolower($filesext);
							
						$extensions_autorisees = array('jpg', 'jpeg', 'pjpg', 'pjpeg', 'JPG', 'png', 'gif', 'tiff');
						if (in_array($filesext, $extensions_autorisees))
						{	   
							$mimeext = array('jpg' => 'image/jpeg', 'jpeg'=>'image/jpeg', 'png'=>'image/png', 'gif'=>'image/gif', 'tiff'=>'image/tiff' );
							$mimextie = array('jpg' => 'image/pjpeg', 'jpeg'=>'image/pjpeg');

                        if ($filesext == 'jpg' || $filesext == 'jpeg' || $filesext == 'pjpg' || $filesext == 'pjpeg')
                            {
							
							$jpgimg = getimagesize($_FILES['uploadFile']['tmp_name']);
                              
                              if($jpgimg['mime'] == $mimeext[$filesext] || $jpgimg['mime'] == $mimeextie[$filesext])
				{
						}
                                        	else
                                        	{
                                                echo 'Le type MIME de l\'image n\'est pas bon';
                                        	} 

                                        $jpgimg = imagecreatefromjpeg($_FILES['uploadFile']['tmp_name']);

                                        $tjpgimg = getimagesize($_FILES['uploadFile']['tmp_name']);

                                        $newlarg = 350; 
 
                                        $newhaut = ( ($tjpgimg[1] * (($newlarg)/$tjpgimg[0])) );
 
                                        $newjpgimg = imagecreatetruecolor($newlarg , $newhaut) or die ("Erreur");
 
                                        imagecopyresampled($newjpgimg , $jpgimg  , 0,0, 0,0, $newlarg, $newhaut, $tjpgimg[0],$tjpgimg[1]);
                                              imagedestroy($jpgimg);
                                             
                                               $filerename = 'fichier_du_'.date('YmdHis').'.'.$filesext;
                                              
                                              imagejpeg($newjpgimg , 'uploads_img/'.$filerename, 100);
                                
								
					if ($filesext == 'png')
                            		{
                              
							 $pngimg = getimagesize($_FILES['uploadFile']['tmp_name']);

							  
                              	if($pngimg['mime'] == $mimeext[$filesext] || $pngimg['mime'] == $mimeextie[$filesext])
				{
						 }
                                        	else
                                        	{
                                                echo 'Le type MIME de l\'image n\'est pas bon';
                                        	}

                                        $pngimg = imagecreatefrompng($_FILES['uploadFile']['tmp_name']);
                                        $tpngimg = getimagesize($_FILES['uploadFile']['tmp_name']);
                                        $newlarg = 350;
 
                                        $newhaut = ( ($tpngimg[1] * (($newlarg)/$tpngimg[0])) );
 
                                        $newpngimg = imagecreatetruecolor($newlarg , $newhaut) or die ("Erreur");
 
                                        imagecopyresampled($newpngimg , $pngimg  , 0,0, 0,0, $newlarg, $newhaut, $tpngimg[0],$tpngimg[1]);
                                        imagedestroy($pngimg);
                                             
                                               $filerename = 'fichier_du_'.date('YmdHis').'.'.$filesext;
                                              
                                              
                                              imagepng($newpngimg, 'uploads_img/'.$filerename,0 );
             
 						}
                                		else
                                		{
                                    	//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
                                		}
                                             
                                        	
                               		}
                                	else
                                	{
                                    //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
                                	}
                        	}
                        	else
                        	{
                                echo 'L\'extension choisie pour l\'image est incorrecte';
                        	}
                	}
                	else
                	{
                       echo 'L\'image est trop lourde';
                	}
				
	
		}
		else
		{
		 echo 'Erreur lors de l\'upload image';
		}	
		
				
        }
	else
	{
	echo 'Prêt!';
	}	



$destpath = '/uploads_img/';

?>
	
JS:

Code : Tout sélectionner

<script type="text/javascript"> <!-- window.top.window.uploadEnd("<?php echo $error; ?>", "<?php echo $destpath. $filerename; ?>"); //--> </script>

ViPHP
xTG
ViPHP | 7331 Messages

06 déc. 2011, 15:44

if ($filesext == 'jpg' || $filesext == 'jpeg' || $filesext == 'pjpg' || $filesext == 'pjpeg')
Pas de png dans cette ligne.
Alors que le code se trouve dedans (alors qu'il a rien à y faire vu que c'est le traitement des jpeg), donc jamais exécuté.
Pas du traitement du else.
Donc il est normal que ton script ne fasse rien.

Petit nouveau ! | 3 Messages

06 déc. 2011, 16:01

Bonjour, mercipour ta rèponse le png est traité dans la deuxième partie du php:
if ($filesext == 'png')
                            		{
                              
							  			$pngimg = getimagesize($_FILES['uploadFile']['tmp_name']);

							  
                              	if($pngimg['mime'] == $mimeext[$filesext] || $pngimg['mime'] == $mimeextie[$filesext])
							   	{
											 }
                                        	else
                                        	{
                                                echo 'Le type MIME de l\'image n\'est pas bon';
                                        	}
                                        $pngimg = imagecreatefrompng($_FILES['uploadFile']['tmp_name']);
                                        $tpngimg = getimagesize($_FILES['uploadFile']['tmp_name']);
                                        $newlarg = 350;
 
                                        $newhaut = ( ($tpngimg[1] * (($newlarg)/$tpngimg[0])) );
 
                                        $newpngimg = imagecreatetruecolor($newlarg , $newhaut) or die ("Erreur");
 
                                        imagecopyresampled($newpngimg , $pngimg  , 0,0, 0,0, $newlarg, $newhaut, $tpngimg[0],$tpngimg[1]);
                                              imagedestroy($pngimg);
                                             
                                               $filerename = 'fichier_du_'.date('YmdHis').'.'.$filesext;
                                              
                                              
                                              imagepng($newpngimg, 'uploads_img/'.$filerename,0 );             
 										}
                                		else
                                		{
                                    	//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
                                		}

ViPHP
xTG
ViPHP | 7331 Messages

06 déc. 2011, 17:47

Relis mon message...
Indentes correctement ton code et tu comprendras le problème.

Petit nouveau ! | 3 Messages

07 déc. 2011, 12:02

Bonjour,
Voici la solution a mon problème:
<?php
if(isset($_FILES['uploadFile'])){
$filename = $_FILES['uploadFile']['name'];
$path = pathinfo($filename);
echo $filesext = $path['extension'];
$filesext = strtolower($filesext);
$extensions_autorisees = array('jpg','jpeg','pjpg','pjpeg','jpg','png','gif','tiff');
$destpath = './uploads_img/';


if ($_FILES['uploadFile']['error'] <= 0){
}else{
$errors.='Erreur lors de l\'upload image';
exit($errors);
}

if ($_FILES['uploadFile']['size'] <= 2097152){
}else{
$errors.='L\'image est trop lourde';
exit($errors);
}

if(in_array($filesext,$extensions_autorisees)){
}else{
$errors.='Le type MIME de l\'image n\'est pas bon';
exit($errors);
}

$img = @getimagesize($_FILES['uploadFile']['tmp_name']);


    if($filesext==='jpg' && ($img['mime']==='image/jpg' || $img['mime']==='image/jpeg' || $img['mime']==='image/pjpeg')){
    $jpgimg = imagecreatefromjpeg($_FILES['uploadFile']['tmp_name']);
    $tjpgimg = getimagesize($_FILES['uploadFile']['tmp_name']);
    $newlarg = 350; 
    $newhaut = ( ($tjpgimg[1] * (($newlarg)/$tjpgimg[0])) );
    $newjpgimg = imagecreatetruecolor($newlarg,$newhaut) or die ("Erreur");
    imagecopyresampled($newjpgimg,$jpgimg,0,0,0,0,$newlarg,$newhaut,$tjpgimg[0],$tjpgimg[1]);
    imagedestroy($jpgimg);
    $filerename = 'fichier_du_'.date('YmdHis').'.'.$filesext;
    imagejpeg($newjpgimg ,$destpath.$filerename,100);
    }
    
    elseif($filesext==='png' && ($img['mime']==='image/png' || $img['mime']==='image/x-png')){
    $pngimg = imagecreatefrompng($_FILES['uploadFile']['tmp_name']);
    $tpngimg = getimagesize($_FILES['uploadFile']['tmp_name']);
    $newlarg = 350;
    $newhaut = ( ($tpngimg[1] * (($newlarg)/$tpngimg[0])) );
    $newpngimg = imagecreatetruecolor($newlarg,$newhaut) or die ("Erreur");
    imagecopyresampled($newpngimg,$pngimg,0,0,0,0,$newlarg,$newhaut,$tpngimg[0],$tpngimg[1]);
    imagedestroy($pngimg);
    $filerename = 'fichier_du_'.date('YmdHis').'.'.$filesext;
    imagepng($newpngimg, $destpath.$filerename,0);             
    }
    
    elseif($filesext==='gif' && ($img['mime']==='image/gif')){
    $gifimg = imagecreatefromgif($_FILES['uploadFile']['tmp_name']);
    $tpngimg = getimagesize($_FILES['uploadFile']['tmp_name']);
    $newlarg = 350;
    $newhaut = ( ($tpngimg[1] * (($newlarg)/$tpngimg[0])) );
    $newpngimg = imagecreatetruecolor($newlarg,$newhaut) or die ("Erreur");
    imagecopyresampled($newpngimg,$pngimg,0,0,0,0,$newlarg,$newhaut,$tpngimg[0],$tpngimg[1]);
    imagedestroy($pngimg);
    $filerename = 'fichier_du_'.date('YmdHis').'.'.$filesext;
    imagegif($newpngimg, $destpath.$filerename,0);             
    }
        
    else{
    }
           
}else{
}      	


?>