bonjour j'ai un soucis a mon update. lorsque j'ai un formulaire d'update qui comporte un champ de type file. Je permet a un utilisateur de modifier tous même une image. Lorsque tous les champs sont renseignés tout se passe bien et l'update se fait.Mai le soucis c'est si l'utilisateur ne desire pas changer d'image je voudrais que le l'url de l'ancienne image soit toujours enregistrée. Mais j'ai toujours la même erreur . "Le format d'image que vous avez choisis n'est pas pris en charge.Veuillez choisir une autre." voici mon code :
<?php
@session_start();
include"structclass.php";
include"imageresizer.php";
if($_SERVER['REQUEST_METHOD']=="POST" )
{
$servid=$_SESSION['servid'];
$typeadmin=$_SESSION['admintype'];
$titre=checkitall($_POST['titre']);
$presentation=checkitall($_POST['projetbio']);
$id=checkitall($_POST['id']);
$li=checkitall($_POST['new_img']);
$image='';

if(isset($_FILES["image"]["name"]))
    {
        $temp = explode(".", $_FILES["image"]["name"]);
        $extension = end($temp);
        $allowedExts = array("gif", "jpeg", "jpg", "png");

        if ((($_FILES["image"]["type"] == "image/gif")
                    || ($_FILES["image"]["type"] == "image/jpeg")
                    || ($_FILES["image"]["type"] == "image/jpg")
                    || ($_FILES["image"]["type"] == "image/pjpeg")
                    || ($_FILES["image"]["type"] == "image/x-png")
                    || ($_FILES["image"]["type"] == "image/png"))
                        && ($_FILES["image"]["size"] < 1024000)
                        && in_array($extension, $allowedExts))
                        {
                            if ($_FILES["image"]["error"] > 0)
                            {
                                echo "code d'erreur: " . $_FILES["image"]["error"] . "<br>";
                            }
                            else
                            {
                                $dossier='';
                                switch($typeadmin)
                                        {
                                            case"BWAN":
                                            $dossier="../membres/bwan/".$servid ;
                                            break;
                                            case"STMI":
                                            $dossier="../membres/ministeres/".$servid;
                                            break;
                                            case"STAS":
                                            $dossier="../membres/associations/".$servid;
                                            break;
                                            case"STME":
                                            $dossier="../membres/medias/".$servid;
                                            break;
                                            case"STEG":
                                            $dossier="../membres/eglises/".$servid;
                                            break;
                                            case"STON":
                                            $dossier="../membres/ong/".$servid;
                                            break;
                                            case"STCO":
                                            $dossier="../membres/communautes/".$servid;
                                            break;
                                        }

                                $dossier.="/projets";

                                if(!file_exists($dossier) and !is_dir($dossier))
                                    mkdir($dossier);
                                     if (file_exists($dossier."/". $_FILES["image"]["name"]))
                                        {
                                            echo"<center>".$_FILES["image"]["name"] . " l'image existe d&eacute;j&agrave;.</center> ";
                                        }
                                        else
                                        {
                                            move_uploaded_file($_FILES["image"]["tmp_name"],
                                            $dossier."/".$id.".png");
                                            $image=$dossier."/".$id.".png";

                                        }
                            }
                        }
                        else
                        {
                        echo  "Le format d'image que vous avez choisis n'est pas pris en charge.Veuillez choisir une autre.";
                        exit();
                        }
                }

                        try{

                            require"connectionbd.php";
                            $req="update ad_eprojet set texte=:p,image=:i,date_ajout=:d,titre=:t where ownerid=:o and id=:id";
                            $res=$bdd->prepare($req);

                            if($res->execute(array("id"=>$id,"o"=>$servid,"p"=>$presentation,"i"=>(!empty($image))?$image:$li,"d"=>date("Y-m-d"),"t"=>$titre)))
                            {
                                setFlash('Votre projet a bien été modifié');
                                header('location:dashboard.php?parcours=projet');
                                die();
                            }
                        }
                        catch(Exception $e)
                        {
                        echo'<script>console.log("Erreur : ' . $e->getMessage().' a la ligne '.$e->getLine().' dans le fichier '.$e->getFile().'");</script>';
                        }

}
?>

1 réponse


arnich
Réponse acceptée

Salut,

Avant de tester le format de l'image il faut voir si l'utilisateur a envoyer une image.