j'aimerais sécuriser l'upload de fichiers.
Pour l'instant je fais des tests sur les fichiers .csv, mais je compte l'élargir aux pdf, voir aux .doc...
Mon code actuel est
$t = $_FILES["fichier"];
//print_r($t);
$name=$t["name"];
$tmp_name=$t["tmp_name"];
$erreur=false;
if($t["error"]>0)$erreur="ERREUR code erreur = ".$t["error"];
//1 ere verif : moyennement fiable
$extension = strrchr($name, '.');
if($extension!=".csv")$erreur="<H1>ERREUR : Le fichier n'est pas au format CSV</H1>";
if($erreur!==false)
{
echo $erreur;exit;
}
Mais une simple vérification de l'extension ne me satisfait pas.Ce que j'aimerais c'est avoir un analyseur de fichiers coté PHP qui puisse déterminer le type MIME.
Apparament la fonction finfo_file() et toutes ses consoeurs correspondrait à mes besoins.
Mais je ne peux pas l'utiliser :
Fatal error: Call to undefined function finfo_open() in C:\repertoire\text.php on line 39
Je suis sous Windows et j'ai une version de PHP 5.1
Je ne sais pas à quelle extension est liée cette fonction, je pensait que c'etait php_fileinfo.dll
Mais après avoir
- téléchargé la dll sur http://dllcentral.com/php_fileinfo.dll/5.2.5.5/
- copié/collé la dll dans le repertoire ext/ à coté de toutes mes autres extensions
- puis en ayant rajouter l'extension dans mon fichier php.ini
- puis en ayant redémarré apache
, je tombe toujours sur la même fatal error, j'ai aussi essayé avec php_filepro.dll, cela me fait toujours pareil
bref, je ne sais plus à quelle bibliothèque me fier.
Quelqu'un pourait-il me dire comment installer la fonction finfo_open()?
Et de manière plus général quelqu'un pourrait-il me dire si je fais fausse route et comment analyse-t-on les fichiers uploadés en PHP de manière plus élaborée que la vérification de l'extension?