Upload une image seulement

Fermé
Natha-2001 Messages postés 12 Date d'inscription jeudi 14 novembre 2019 Statut Membre Dernière intervention 15 septembre 2021 - 8 sept. 2021 à 14:00
yg_be Messages postés 22729 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 - 8 sept. 2021 à 14:17
Bonjour,
j'ai un code pour upload une image elle fonctionne bien mais ne me aussi de upload des pdf alors que j'aimerais pouvoir upload uniquement des imag de type png,jpeg,jpg etc...
voici mon code si quelqu'un pouvais m'aider !!

<!-- code de comment ca marche -->
<?php

//---------------------------------//
// Affichage des erreurs PHP
//---------------------------------//
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
session_start();
if(isset($_SESSION['id_utilisateur']))
$id_utilisateur =$_SESSION['id_utilisateur'];
if(!empty($id_utilisateur))
    {
          //---------------------------------//
          //connexion à la base avec activation des erreurs PDO
          //---------------------------------//
          try {
            $bdd = new PDO('mysql:host=localhost;dbname=afrijob', 'root', 'manuella2001');
          // Activation des erreurs PDO
            $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
          // mode de fetch par défaut : FETCH_ASSOC / FETCH_OBJ / FETCH_BOTH
            $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
          } catch (PDOException $e) {
            die('Erreur : ' . $e->getMessage());
          }

          //---------------------------------//
          // FONCTIONS
          //---------------------------------//
          function getPost($varName, $defaultValue = "") {
            return isset($_POST[$varName]) ? $_POST[$varName] : $defaultValue;
          }

          function getFiles($fieldFileName) {
            return !empty($_FILES[$fieldFileName]) ? $_FILES[$fieldFileName] : NULL;
          }

          function moveFile($fieldFileName, $uploadDir = 'upload/') {

            $maxUploadFileSize = 150000;

            $phpFileUploadErrors = array(
                0 => 'There is no error, the file uploaded with success',
                1 => 'The uploaded file exceeds the upload_max_filesize directive in php.ini',
                2 => 'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form',
                3 => 'The uploaded file was only partially uploaded',
                4 => 'No file was uploaded',
                6 => 'Missing a temporary folder',
                7 => 'Failed to write file to disk.',
                8 => 'A PHP extension stopped the file upload.',
            );

            // récupération propre des variables avant de les utiliser
            $F = getFiles($fieldFileName);
            $fileTmpPath = $F['tmp_name'];
            $fileName = $F['name'];
            $fileSize = $F['size'];
            $fileType = $F['type']; // Si tu veux vérifier le type mime du fichier..


            //on vérifie qu'il n'y a pas d'erreur dans le $_FILES
            $error = !empty($F['error']) ? $phpFileUploadErrors[$F['error']] : NULL;
            if ($error) {
              echo $error;
              return false;
            }


            if (!is_dir($uploadDir)) {
              // si le dossier de destination n'existe pas on le créé !
              mkdir($uploadDir, 0755, true);
            }

            // on vérifie que le répertoire de déstination est accessible en écriture
            if (!is_writable($uploadDir)) {
              echo "Permission denied on " . $uploadDir;
              return false;
            }


          // on vérifie la taille du fichier envoyé
            if ($fileSize > $maxUploadFileSize) {
              echo "votre image est trop grande  veuillez choisir une image plus petite merci: " . $fileSize;
              return false;
            }

            $dest_path = $uploadDir . $fileName;

          //On vérifie que le fichier s'est chargé sur le serveur
            if (!is_uploaded_file($fileTmpPath)) {
              echo "nous n'avons pas pu telechaarger votre image ";
              return false;
            }

          //On déplace le fichier dans son répertoire finale
            if (move_uploaded_file($fileTmpPath, $dest_path)) {
              return $fileName;
            } else {
              echo 'There was some error moving the file to upload directory. Please make sure the upload directory is writable by web server.';
              return false;
            }
          }

          //---------------------------------//
          // Début du script :
          //---------------------------------//
          //récupération des variables POST et FILES
          $a = getPost('a');
          $b = getPost('b');
          $c = getPost('c');
          $d = getPost('d');
          $e = getPost('e');
          $f = getPost('f');
          $h = getPost('h');
          $i = getPost('i');
          $j = getPost('j');
          $k = getPost('k');
          $l = getPost('l');
          $z = getPost('z');
          // $date = date("d-m-Y H:i");
          //on upload le fichier
          $g = moveFile('g', 'uploads/');

          //Si il s'est bien uploadé...
          if ($g) {
              $requete = "INSERT INTO emploie(nom_entr, poste, ville, type_contrat,nbre,img_emploi,date_limite,cmt_post,email_emploi,site,whatsapp,sms,appel) 
                      VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?)";
              $params = array($a, $b, $c, $z, $d, $g, $e, $f, $h, $i, $j, $k, $l);
              $resultat = $bdd->prepare($requete);
              $resultat->execute($params);
              header('location:../index.php?reg_err=offre_publier_avec_succes');
          }
        }else{
          header('location:../page de connexion/login.php');
        }
?>




Configuration: Linux / Chrome 92.0.4515.159
A voir également:

1 réponse

yg_be Messages postés 22729 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 477
8 sept. 2021 à 14:17
bonjour,
as-tu lu le commentaire en ligne 59?
0