Kohana: validation et upload de fichiers

Ce petit bout de code, fonctionnant uniquement sur une version récente du SVN (qui correspond à une 2.2 hybride où upload::save a été ajouté assez récement et utilisant la nouvelle version de la lib de validation), déniché sur le forum permet d'effectuer les tâches suivantes:

  • Validation de certains attributs d'une image uploadé
  • Traitement sur l'image (réduction)
 
<?php
 
// On mets ici les règles de validation sur l'image
// Le tableau $_FILES doit être valide, l'image doit être de type gif, jpg ou png et ne doit pas dépasser 1 Mo
$_FILES = Validation::factory($_FILES)
    ->add_rules('picture', 'upload::valid', 'upload::type[gif,jpg,png]', 'upload::size[1M]');
 
// Si les règles sont validées
if ($_FILES->validate())
{
 
    // Déplace le fichier dans le répertoire Config::item('upload.directory', TRUE);
    $filename = upload::save('picture');
 
    // Réduit l'image et la sauve
    Image::factory($filename)
        ->resize(100, 100, Image::WIDTH)
        ->save(DOCROOT.'media/pictures/'.basename($filename).'.jpg');
 
    // Supprime le fichier temporaire
    unlink($filename);
 
    // Redirige vers une autre page
    url::redirect('account/information');
}

Le code ainsi que ses mise à jour futures éventuelles peut être trouvé ici.

Filed under: Kohana, PHP
Tags: , , , , , ,

Vérification des dimensions d'une image lors d'un upload avec PEAR:HTML_Quickform

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:

Lire la suite…

Filed under: PHP
Tags: , , , ,