Contrôler les dimensions de l’image avant l’upload?

Par Abdellah63, il y a 9 ans


Bonsoir,
Comment vérifier que l’image ne dépasse pas 900x300 lors de l’upload ?
Le code auquel j’aimerai ajouter cette condition est celui de l’upload d’image dans le tutoriel (Créer un portfolio de A à Z)
Voici le code :

$work_id = $db->quote($_GET['id']); $files = $_FILES['images']; $images = array(); require '../lib/image.php'; foreach($files['tmp_name'] as $k => $v){ $image = array( 'name' => $files['name'][$k], 'tmp_name' => $files['tmp_name'][$k] ); $extension = pathinfo($image['name'], PATHINFO_EXTENSION); if(in_array($extension, array('jpg','png'))){ $db->query("INSERT INTO images SET name=$name, work_id=$work_id"); $image_id = $db->lastInsertId(); $image_name = $image_id . '.' . $extension; move_uploaded_file($image['tmp_name'], IMAGES . '/works/' . $image_name); resizeImage(IMAGES . '/works/' . $image_name, 150,150); $image_name = $db->quote($image_name); $db->query("UPDATE images SET name=$image_name WHERE id = $image_id"); } }

Merci.

4 réponses

kwik, il y a 9 ans

Bonjour

Je sais pas si il y a une autre facon de faire mais tu peux regarder au niveau de la fonction getimagesize

shadowkamikaze, il y a 9 ans
$dimensions = getimagesize("ton image"); $width = $dimensions[0]; $height = $dimensions[1];
Abdellah63, il y a 9 ans

Salut,
Merci à vous pour votre aide, effectivement la fonction getimagesize est faite pour ça :)
Mais sur le tutoriel le système d’upload permet d’envoyer plusieurs images.
D’après ce que j’ai compris en cherchant des cours a gauche a droite, la fonction getimagesize ne permet de gérer qu’une image à la fois, en tout cas moi je n’ai pas besoin d’uploader plusieurs images du coup j’ai adapté mon code et ca fonctionne :)

    ```
    $width_max  = 900;        // Largeur max de l'image en pixels
    $height_max = 300;        // Hauteur max de l'image en pixels
    $infos_img = getimagesize($_FILES['image']['tmp_name']);

    if(($infos_img[0] == $width_max) && ($infos_img[1] == $height_max)) {
    // on execute le code.........
    }
    ```