Le filtrage et l'échappement des données en PHP 5 : documentation de la technique du Poka-Yoké
Date de publication : 5 juin 2007
IV. DVP_HTTPUploadFilter
IV-A. Propriétés "protected"
IV-B. Constantes
IV-C. Méthodes "private"
cleanString()
IV-D. Méthodes "protected"
filterFile()
inArray()
IV-E. Méthodes "public"
IV-E-1. Les filtres
filterArchive()
filterDocument()
filterImage()
filterMP3()
filterPDF()
filterScript()
filterText()
filterAnyType()
IV-E-2. Les getteurs
getFormattedSize()
getMime()
getName()
getRawSize()
IV. DVP_HTTPUploadFilter
DVP_HTTPUploadFilter hérite de DVP_DataFilter.
|
L'extension PHP fileinfo est nécessaire au bon fontionnement de cette classe (gestion fiable des types MIME).
|
IV-A. Propriétés "protected"
Intérêt général :
- destination : Le chemin système de destination ;
- finfo : L'objet Finfo utilisé pour contrôler le type MIME des fichiers ;
- refusedData : Un Array des fichiers refusés par DVP_HTTPUploadFilter.
Groupes de valeurs autorisées :
- allowedMimes : PDF + MP3 + TEXT ;
- allowedMimeGroups : ARCHIVES + DOCUMENTS + IMAGES + SCRIPTS ;
- allAllowedMimes : allowedMimes + allowedMimeGroups.
Format de nombres :
- decimalsSeparator : Séparateur de décimales (en Français, il s'agit de la virgule ; en Anglais, c'est le point) ;
- thousandsSeparator : Séparateur de milliers (en Français, il s'agit de l'espace ; en Anglais, c'est la virgule).
|
Les deux dernières variables présentées ici sont déclarées "final". Elles ne peuvent pas etre modifiées en-dehors du constructeur de la classe.
|
IV-B. Constantes
Résultat de l'opération de filtrage :
- FILTERED_ACCEPTED
- FILTERED_REFUSED
Configuration de l'extension fileinfo :
- MAGIC_FILE : Le chemin d'accès au ficher "magique" ;
- FILEINFO_MODE : Le mode d'utilisation du fichier "magique" (constantes du scope global : FILEINFO_MIME ou FILEINFO_NONE).
Types MIME suportés :
- MIME_MP3
- MIME_PDF
- MIME_TEXT
- MIME_ARCHIVES
- MIME_DOCUMENTS
- MIME_IMAGES
- MIME_SCRIPTS
Tailles des fichiers par type MIME :
- SIZE_MP3
- SIZE_PDF
- SIZE_TEXT
- SIZE_ARCHIVES
- SIZE_DOCUMENTS
- SIZE_IMAGES
- SIZE_SCRIPTS
Valeurs par défaut :
- DEFAULT_SEPARATOR_DECIMALS = ','
- DEFAULT_SEPARATOR_THOUSANDS = ' '
Unités pour le formatage des tailles de fichiers :
- UNIT_OCTET
- UNIT_KILO_OCTET
- UNIT_MEGA_OCTET
- UNIT_GIGA_OCTET
IV-C. Méthodes "private"
cleanString()
Cette méthode n'est utilisée qu'en interne. Il n'y a pas de raison de permettre au développeur de l'utiliser.
Cette méthode est finale, elle ne peut être surchargée (même si on la définit en protected ou public).
Paramètres :
- string : Le nom de fichier à formater.
Exceptions :
IV-D. Méthodes "protected"
filterFile()
Cette méthode permet de vérifier la validité d'un fichier en fonction de son type et de sa taille. Si les vérifications sont couronnées de succès, le fichier est automatiquement renommé et déplacé hors du répertoire temporaire du serveur Web.
Paramètres :
- field : Le champ décrivant le fichier à vérifier ;
- intendedMime : Le type du fichier ;
- intendedMaxSize : La taille maximum du fichier.
Exceptions :
- DVP_AbsentOffsetException
- DVP_FileSizeException
- DVP_TypeException
- DVP_ValueException
inArray()
Cette méthode sert à déterminer si une chaîne est contenue dans n'importe quelle chaîne d'un tableau.
Paramètres :
- needle : L'aiguille ;
- haystack : La meule de foin.
Exceptions :
IV-E. Méthodes "public"
IV-E-1. Les filtres
filterArchive()
Cette méthode appelle filterFile() avec des paramètres prédéfinis pour les archives compressées.
Paramètres :
- field : Le champ décrivant le fichier à vérifier ;
- size (par défaut = DVP_HTTPUploadFilter::SIZE_ARCHIVES).
Exceptions :
- DVP_AbsentOffsetException
- DVP_FileSizeException
- DVP_TypeException
- DVP_ValueException
Exemple d'utilisation : |
$_FILES ->filterArchive (' documents ' );
|
filterDocument()
Cette méthode appelle filterFile() avec des paramètres prédéfinis pour les documents texte.
Paramètres :
- field : Le champ décrivant le fichier à vérifier ;
- size (par défaut = DVP_HTTPUploadFilter::SIZE_DOCUMENTS).
Exceptions :
- DVP_AbsentOffsetException
- DVP_FileSizeException
- DVP_TypeException
- DVP_ValueException
filterImage()
Cette méthode appelle filterFile() avec des paramètres prédéfinis pour les images.
Paramètres :
- field : Le champ décrivant le fichier à vérifier ;
- size (par défaut = DVP_HTTPUploadFilter::SIZE_IMAGES).
Exceptions :
- DVP_AbsentOffsetException
- DVP_FileSizeException
- DVP_TypeException
- DVP_ValueException
filterMP3()
Cette méthode appelle filterFile() avec des paramètres prédéfinis pour les fichiers MP3.
Paramètres :
- field : Le champ décrivant le fichier à vérifier ;
- size (par défaut = DVP_HTTPUploadFilter::SIZE_MP3).
Exceptions :
- DVP_AbsentOffsetException
- DVP_FileSizeException
- DVP_TypeException
- DVP_ValueException
filterPDF()
Cette méthode appelle filterFile() avec des paramètres prédéfinis pour les documents PDF.
Paramètres :
- field : Le champ décrivant le fichier à vérifier ;
- size (par défaut = DVP_HTTPUploadFilter::SIZE_PDF).
Exceptions :
- DVP_AbsentOffsetException
- DVP_FileSizeException
- DVP_TypeException
- DVP_ValueException
filterScript()
Cette méthode appelle filterFile() avec des paramètres prédéfinis pour les scripts.
Paramètres :
- field : Le champ décrivant le fichier à vérifier ;
- size (par défaut = DVP_HTTPUploadFilter::SIZE_SCRIPTS).
Exceptions :
- DVP_AbsentOffsetException
- DVP_FileSizeException
- DVP_TypeException
- DVP_ValueException
filterText()
Cette méthode appelle filterFile() avec des paramètres prédéfinis pour les fichiers de texte brut.
Paramètres :
- field : Le champ décrivant le fichier à vérifier ;
- size (par défaut = DVP_HTTPUploadFilter::SIZE_TEXT).
Exceptions :
- DVP_AbsentOffsetException
- DVP_FileSizeException
- DVP_TypeException
- DVP_ValueException
filterAnyType()
Cette méthode appelle filterFile() avec des paramètres prédéfinis pour le type MIME du fichier concerné.
Paramètres :
- field : Le champ décrivant le fichier à vérifier ;
- size (par défaut = NULL).
Exceptions :
- DVP_AbsentOffsetException
- DVP_FileSizeException
- DVP_TypeException
- DVP_ValueException
IV-E-2. Les getteurs
|
Les méthodes "get..." ne fonctionnent qu'avec les fichiers filtrés.
|
getFormattedSize()
Retourne une taille formattée de manière lisible.
Paramètres :
- field Le champ décrivant le fichier.
Exceptions :
getMime()
Retourne le type MIME d'un fichier.
Paramètres :
- field Le champ décrivant le fichier.
Exceptions :
- DVP_AbsentOffsetException
- DVP_TypeException
getName()
Retourne le nom d'un fichier.
Paramètres :
- field Le champ décrivant le fichier.
Exceptions :
- DVP_AbsentOffsetException
- DVP_TypeException
getRawSize()
Retourne la taille d'un fichier (en octets).
Paramètres :
- field Le champ décrivant le fichier.
Exceptions :
Copyright © 2006 Guillaume Rossolini.
Aucune reproduction, même partielle, ne peut être faite
de ce site ni de l'ensemble de son contenu : textes, documents, images, etc.
sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à
trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.