Vérification des dimensions d'une image lors d'un upload avec PEAR:HTML_Quickform
jan
10
0
Le package Quickform que vous pouvez trouver sur le site pear permet, comme son nom l'indique de créer rapidement des formulaires. Cela inclut tout type de formulaires mais Quickform permet aussi de gérer l'upload de fichier.
Dans le cas d'upload d'images, il peut être intéressant de vérifier les dimensions des images. Par exemple, pour limiter les images uploadées à 1024×768. Par défaut, Quickform ne permet pas de valider ce critère mais on peut facilement le faire en créant une fonction de callback. Voici le code à utiliser:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | <?php require_once "HTML/QuickForm.php"; function process() { global $file,$path; if ($file->isUploadedFile()) { $file->moveUploadedFile($path); print "Upload OK!"; } else { print "Erreur!"; } } function ruleCheckImagesize() { global $file; if ($file->isUploadedFile()) { $meta = $file->getValue(); if($size = @getimagesize($meta["tmp_name"])) { if($size[0] == 640 AND $size[1] == 480) { return true; } } } return false; } $uploadForm = new HTML_QuickForm("upload_form", "post"); $uploadForm->registerRule("imagesize", "function", "ruleCheckImagesize"); $path = "d:/www/tmp/"; $file = $uploadForm->addElement("file", "filename", "File:"); $uploadForm->addRule("filename", "Vous devez choisir un fichier", "uploadedfile"); $uploadForm->addRule("filename", "L'image ne doit pas excéder les dimensions 640×480px !", "imagesize"); $uploadForm->addElement("submit", "btnUpload", "Upload"); if ($uploadForm->validate()) { $uploadForm->process("process", true); } else { $uploadForm->display(); } ?> |