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.

A lire également

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

5 Responses

  1. Gravatar

    Zim Says:

    Attention avant de balancer des infos…

    Ce code ne fonctionnera pas avec la dernière version stable de Kohana, il faut, pour l'heure aller dénicher la derniere version du helper en question depuis le "SVN trac".

    Posted on avril 22nd, 2008 at 2:25

  2. Gravatar

    hotandspicy Says:

    Effectivement. Je vais surement ajouter qq méta informations en début de chaque article pour spécifier la version de Kohana utilisée. De manière générale j'utilise une version assez récente du trunk. C'est le cas pour cet article ou je crois que upload::save est apparue il y a peu.

    Posted on avril 22nd, 2008 at 9:38

  3. Gravatar

    Zim Says:

    Salut :)

    Pour la version courante (2.1 je crois?) il n'y a pas grand chose de ta source qui est valable.

    A commencer par la méthode add_rules… :-)

    Bref, juste que j'me suis pris la tête 15 minutes au boulot "a cause de" ta publication jusqu'à ce que j'aille piocher les infos dans le framework, puis sur le forum de kohana.

    Bon ok, j'avais qu'a lire un peu plus la doc, prendre mes p'tites mains, mes p'tits doigts et coder ce p'tit truc moi même dès le départ au lieu de faire ma loutre !

    En même temps 15 jours seulement que je suis sur Kohana et ton blog me donne l'impression d'être moins seul à aimer ce CodeIgniter Reloaded :)

    Bravo, bonne continuation, et je sache que tu es dans mon lecteur RSS :)

    Posted on avril 22nd, 2008 at 18:29

  4. Gravatar

    hotandspicy Says:

    Oula… tout à fait. En fait ma source utilise la nouvelle version de la librairie de Validation d'ou le problème rencontré avec add_rules.

    En fait je pense qu'après la 2.2 ca se stabilisera un peu ces ajouts/modifs dans le code mais entre la 2.1 et la 2.2 il y aura pas mal de changements. La 2.2 c'est en fait le trunk et c'est sur ceci que je me base.

    >> j'me suis pris la tête 15 minutes au boulot
    tiens donc ;-)

    Ca reste un framework de barbu ou il ne faut pas voir peur de mettre les mains dans le cambouis.

    Sinon, ca va mieux aujourd'hui avec Kohana (CodeIgniter on steroids)?

    Posted on mai 11th, 2008 at 17:42

  5. Gravatar

    Zim Says:

    Les mains dans le cambouis? Je n'suis pas très expérimenté, je n'suis pas non plus un vieux Geek, je trouve meme, au contraire qu'il n'y a rien de mieux pour développer une appli rapidos sans passer 10 ans à lire de la doc!

    Posted on mai 18th, 2008 at 17:14

Leave a Reply