Carnet Wiki

CVT Upload

SPIP-Contrib :: Carnet Wiki :: Recherche :

CVT Upload

Doc en brouillon. Merci de compléter et corriger


CVT Upload est un plugin pour développeur qui fournir des méthodes d’upload d’un ou d’un ensemble fichiers au formulaire CVT.

Installation

Il est recommandé d’utiliser le plugin Vérifier

Une page de démonstration est disponible à l’adresse ?page=demo/test_upload qui fournit la syntaxe de base

Phase Vérifier

Le plugin fournit une méthode de vérification à des variables $_FILES sous la forme d’un tableau.

Voici l’exemple fourni par le plugin

  1. function formulaires_test_upload_verifier(){
  2. $erreurs = array();
  3.  
  4. if (_request('tromperie'))
  5. $erreurs['tromperie'] = 'Il ne fallait rien remplir.';
  6.  
  7. // options pour vérifier les images
  8. // si les options ne sont pas renseignées, la vérification se base sur
  9. // _IMG_MAX_SIZE, _IMG_MAX_WIDTH, _IMG_MAX_HEIGHT
  10. $verifier = charger_fonction('verifier', 'inc', true);
  11. $options = array(
  12. 'taille_max' => 250, // en Ko
  13. 'largeur_max' => 800, // en px
  14. 'hauteur_max' => 600, // en px
  15. );
  16.  
  17. // vérifier le champ image unique
  18. if ($erreur = $verifier($_FILES['image'], 'image_upload', $options)) {
  19. // renvoyer l'erreur dans le formulaire
  20. $erreurs['image'] = $erreur;
  21. // supprimer le fichier en erreur dans _FILES
  22. unset($_FILES['image']);
  23. }
  24.  
  25. // vérifier le champ images multiples
  26. $erreurs_fichiers = array();
  27. if ($erreur = $verifier($_FILES['plusieurs_images'], 'image_upload_multiple', $options, $erreurs_fichiers)) {
  28. // renvoyer l'erreur dans le formulaire
  29. $erreurs['plusieurs_images'] = $erreur;
  30. // supprimer les fichiers en erreur dans _FILES
  31. foreach ($erreurs_fichiers as $id_file => $erreur) {
  32. foreach ($_FILES['plusieurs_images'] as $key => $val) {
  33. unset($_FILES['plusieurs_images'][$key][$id_file]);
  34. }
  35. }
  36. }
  37.  
  38. return $erreurs;
  39. }

Télécharger

Phase Traiter

Les données des fichiers sont retournées sous forme d’un tableau php

  1. function formulaires_test_upload_traiter(){
  2. $retours = array('message_ok' => 'Il ne se passe rien.');
  3.  
  4. $fichiers = _request('_fichiers');
  5. var_dump($fichiers);
  6.  
  7. return $retours;
  8. }

Télécharger

retourne

array (size=2)
  ’seul’ => 
    array (size=7)
      ’tmp_name’ => string ’\www\tmp\cvtupload\tes5337.tmp’ (length=49)
      ’name’ => string ’img_9935.jpg’ (length=12)
      ’extension’ => string ’jpg’ (length=3)
      ’vignette’ => string ’plugins-dist/medias/prive/vignettes/jpg.png’ (length=43)
      ’mime’ => string ’image/jpeg’ (length=10)
      ’form’ => string ’test_upload’ (length=11)
      ’infos_encodees’ => string ’+Zo29LoMnf4vtlqe0nX1aDH....’ (length=288)
  ’plusieurs_images’ => 
    array (size=1)
      0 => 
        array (size=7)
          ’tmp_name’ => string ’\www\tmp\cvtupload\tes1ACC.tmp’ (length=49)
          ’name’ => string ’img_20150621_123152.jpg’ (length=23)
          ’extension’ => string ’jpg’ (length=3)
          ’vignette’ => string ’plugins-dist/medias/prive/vignettes/jpg.png’ (length=43)
          ’mime’ => string ’image/jpeg’ (length=10)
          ’form’ => string ’test_upload’ (length=11)
          ’infos_encodees’ => string ’+Vog9LoMgYfnTGZ+iukgRuUBpJmIl9wiYBqPU6urNf9dKx8U61XioVN2rHjkXVNolJiPpLFQvn/VHFgTivnmjuaUN/p7ijkDWKoYfNZ8xWxGoDe20CpLWz...’ (length=304)