Controle avant upload...

davidcian Messages postés 186 Date d'inscription vendredi 18 novembre 2005 Statut Membre Dernière intervention 19 décembre 2009 - 14 oct. 2007 à 14:14
davidcian Messages postés 186 Date d'inscription vendredi 18 novembre 2005 Statut Membre Dernière intervention 19 décembre 2009 - 18 oct. 2007 à 10:21
Bon les parties en rouge de mon code ne fonctionnent pas. Je me suis pourtant bien creusé la tete...

<hr size="2" width="100%" />    {   
    //connection a la base
    include("../../includes/connection.php3");

    // Répertoire de stockage
    $rep="../../upload/photo/";
    // Création du répertoire
    $rep_promo=    $rep."/".$_POST["promo"]."/";
        if(!file_exists($rep_promo))  mkdir($rep_promo, 0755);
    $rep_programme=    $rep_promo."/".$_POST["programme"]."/";
        if(!file_exists($rep_programme))  mkdir($rep_programme, 0755);
    // upload de la photo
        // Taille maximum
        $MAX_FILE_SIZE = 2000000;
        // Dossier de destination du fichier
        $folder = $rep_programme;
        // Tableau array des différents types
        $allowed_types = array("image/jpeg");
        // Variables récupérée par methode POST du formulaires
        $fname = $_FILES['premiere']['name'];
        $ftype = $_FILES['premiere']['type'];
        $fsize = $_FILES['premiere']['size'];
        $ftmp = $_FILES['premiere']['tmp_name'];
        // Diverses test afin de savoir si :
            // Le format de fichier correspond à notre tableau array
            if(in_array($ftype, $allowed_types)){$error = 1;}

            // La taille du fichier n'est pas dépassée
            if($fsize > $MAX_FILE_SIZE){$error = 2;}
            // Le fichier n'existe pas déjà
            if(file_exists($rep_programme.$_POST["lot"]."_photo".".jpg")){$error = 3;}
            // Si tout va bien, c'est bien déroulé
            if($_FILES['premiere']['size'] >0)
            {
            $savefile = $rep_programme.$_POST["lot"]."_photo".".jpg";
            (move_uploaded_file($_FILES['premiere']['tmp_name'],$savefile));
            $error = 0;
            }
        // Switch servant simplement à la gestion des erreures
        switch($error)
        {
            case'0':
                echo("Ok.");
                break;
            case'1':
                echo("Format de fichier incorrecte.");
                break;
               
            case'2':
                echo("Fichier trop volumineux.");
                break;
               
            case'3':
                echo("Fichier déjà existant.");
                break;               
        }
        //Rédimentionement de la photo   
            $filename = $savefile;
               $dst_w = 800;
            $dst_h = 600;
        // Lit les dimensions de l'image
               $size = GetImageSize($filename); 
               $src_w = $size[0];
            $src_h = $size[1];
           // Teste les dimensions tenant dans la zone
               $test_h = round(($dst_w / $src_w) * $src_h);
               $test_w = round(($dst_h / $src_h) * $src_w);
        // Si Height final non précisé (0)
               if(!$dst_h) $dst_h = $test_h;
        // Sinon si Width final non précisé (0)
               elseif(!$dst_w) $dst_w = $test_w;
        // Sinon teste quel redimensionnement tient dans la zone
               elseif($test_h>$dst_h) $dst_w = $test_w;
               else $dst_h = $test_h;
            list($width, $height) = getimagesize($filename);
        // Redimensionnement
            $image_p = imagecreatetruecolor($dst_w, $dst_h);
            $image = imagecreatefromjpeg($filename);
            imagecopyresampled($image_p, $image, 0, 0, 0, 0, $dst_w, $dst_h, $width, $height);
            imagejpeg($image_p, $filename, 80);
                               
    //upload du plan
    if($_FILES['seconde']['size'] >0)
    {
    $savefile = $rep_programme.$_POST["lot"]."_plan".".jpg";
        (move_uploaded_file($_FILES['seconde']['tmp_name'],$savefile));
    }                           
}
<hr size="2" width="100%" />En faite dans tous les cas la photo s'upload et ne tien pas compte des verifications de l'extention, de la taille ni si elle existe deja...

Az

2 réponses

misterrv Messages postés 1 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 17 octobre 2007
17 oct. 2007 à 11:05
je vais prendre un peu de temps pour ton code.
en attendant, là tu fais le contraire de ce que tu souhaites je pense :




if(in_array($ftype, $allowed_types)){$error = 1;}


$error = 1 si ton fichier a le bon type. bizarre
0
davidcian Messages postés 186 Date d'inscription vendredi 18 novembre 2005 Statut Membre Dernière intervention 19 décembre 2009 1
18 oct. 2007 à 10:21
Merci de prendre le temps de m'aider

Az
0
Rejoignez-nous