8791 sujets

Développement web côté serveur, CMS

Bonjour j'utilise un formulaire d'upload classique pour que les utilisateurs de mon site puissent m'envoyer des photos,

j'aimerais savoir quel genre de fonction il est possible d'utiliser pour interdire l'envoye de photo dont la largueur fait moins de 500 pixels...?

merci pour votre aide et bonne soirée

Smiley ravi
Modifié par chromatik (12 May 2009 - 14:57)
merci pour ta réponse, j'ai essayé d'intégrer le getimagesize au script que j'utilise, mais mon niveau php n'est pas très élévé et je bloque!

j'utilise ce script voir ici(démo en bas de page) qui permet l'upload et recadrage de l'image avc jquery.

mon idée était d'intégrer deux valeurs en haut de page dans les constantes pour donner la taille minimum que j'accepte => $min_width = "500"; $min_height = "500";
j'ai voulu intégrer getimagesize à l'endroit ou l'on recherche si l'image est bien un jpg, qu'elle fait moins d'1mg etc... mais je me planter quelque part...et je ne sais pas si c'est dans l'utilisation de getimagesize ou
l'intégration de celui-ci dans le script ou...les 2 ^^

((je sais que c'est assez "lourd"de ce plonger dans un code comme ça, mais je le post quand même pcq j'ai besoin d'aide ^^ Smiley ravi )) pour voir le code en entier et les explications du fonctionnement de celui-ci revoici le lien du haut de page =>voir le code la partie de code que je post en bas, c'est le point
2. Capture, rename and resize the uploaded file. c'est là que j'ai essayé d'intégrer le getimagesize
...... à toute personne qui souhaite m'aider, merci d'avance. Smiley cligne

if (isset($_POST["upload"])) {
    //Get the file information
    $userfile_name = $_FILES['image']['name'];
    $userfile_tmp = $_FILES['image']['tmp_name'];
    $userfile_size = $_FILES['image']['size'];
    $filename = basename($_FILES['image']['name']);
    $file_ext = substr($filename, strrpos($filename, '.') + 1);
  
   $size_limit = getimagesize($_FILES['image']);                                      //mon intégration de getimagezize je regarde si la taille de l'img  fait plus de 500px;
          $width_limit = $size_limit[0];
          $height_limit = $size_limit[1];
   
    //Only process if the file is a JPG and below the allowed limit
    if((!empty($_FILES["image"])) && ($_FILES['image']['error'] == 0)) {
        if (($file_ext!="jpg") || ($userfile_size > $max_file) || ($width_limit >= $min_width)) { // UPDATED ERROR CHECK
           
$error= "nous n'acceptons que les fichiers de moins d'1 mega au format jpg. Merci de votre compréhension";
        }
    }else{
        $error= "Votre fichier dépasse la taille maximum autorisée (1 mega)";
    }

Ce n'est pas
$size_limit = getimagesize($_FILES['image']);
mais
$size_limit = getimagesize($_FILES['image']['tmp_name']);
Smiley biggrin Merci, c'était bien ça! Doublé d'un problème de signes dans ma condition,
>= au lieu <= ... tête en l'air...

une fois de plus, merci pour ton aide très utile Smiley ravi
J'aurais bien aimé une dernière petite aide Smiley smile svp

Ce script est vraiment bien fait mais j'aimerais supprimer une de ses fonctionnalités.
En fait une fois l'image recadrée, il sauvegarde aussi l'image d'origine, mais perso je n'ai pas besoin de cette image et elle vient encombré mon petit espace web pour rien...

Qu'elle serait le bon moyen d'empécher l'upload final de cette image d'origne?
J'ai essayé à ma sauce de supprimer quelques lignes que je croyais ce référer à ça, mais soit
plus aucun upload ne s'effectue ou alors j'ai des erreurs... Smiley biggol

merci
chromatik a écrit :
JQu'elle serait le bon moyen d'empécher l'upload final de cette image d'origne?
Tu ne peux pas puisque c'est à partir de cette image uploadée que tu génères l'autre.

La solution est de la supprimer après coup à l'aide de la fonction unlink.