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: , , , , , ,

Kohana: un exemple de contrôleur pour un formulaire (validation, ORM)

Geert, un membre très actif du projet Kohana a posté sur le forum un exemple de contrôleur et de vue permettant de créer un formulaire avec:

  • Pré remplissage des champs avec des valeurs
  • Validation des données
  • Ré-affichage du formulaire avec les données entrées si la validation échoue
  • Insertion en base en ORM si la validation est un succès

Lire la suite…

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