PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 06-12-2011 11:38:15

blackshadows
Membre
Inscription : 04-04-2011
Messages : 3

Problème d'enregistrement au format PNG

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:

<script type="text/javascript">
<!--
        function uploadInit() {
                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éléchargement ré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> </p>  
             
                   <p><input id="uploadFile" name="uploadFile" type="file" />
                       
                   <input  id="uploadSubmit" type="submit" value="télé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:

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

Hors ligne

#2 07-12-2011 11:10:54

blackshadows
Membre
Inscription : 04-04-2011
Messages : 3

Re : Problème d'enregistrement au format PNG

Bonjour, voici la solution:

<?php

$errors=null;

/*les tests*/

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{
}      


?>
 

Hors ligne

Pied de page des forums