[Upload] Problème d'extension avec l'upload
Salut,
j'ai fais une fonction d'uploader de fichiers sur lesquels je verifie l'extension, tout marche bien (enfin presque), en fait je ne dois pouvoir uploader que des images, mais lorsque j'upload un .exe il passe, alors qu'avec les autres extensions, cela ne passe pas...
Pouvez-vous m'aider SVP.
Voila mon code:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
|
//fonction d'upload de fichier la variable $allowedExt peut contenir plusieurs extension separé par un pipe
//exemple d'utilisation:
//uploadImage("upload","../upload","150000",".jpeg|.gif|.png");
function uploadImage($nomChamp,$path,$maxSizeInOctet,$allowedExt){
// Taille maximum
$MAX_FILE_SIZE = $maxSizeInOctet;
//recuperation de la ou des extension acceptées
$tab= preg_split("/\|/", $allowedExt, -1, PREG_SPLIT_NO_EMPTY);
$nbExt = sizeof($tab);
$ext = explode('|', $allowedExt, $nbExt);
// Dossier de destination du fichier
$folder = $path;
// Variables récupérée par methode POST du formulaires
$fileName = $_FILES[''.$nomChamp.'']['name'];
$fileType = $_FILES[''.$nomChamp.'']['type'];
$fileSize = $_FILES[''.$nomChamp.'']['size'];
$fileTmp = $_FILES[''.$nomChamp.'']['tmp_name'];
$extension = strrchr($fileName, ".");
$auth_ext = array($ext);
function isExtAuthorized($extension){
//global $auth_ext;
if(@in_array($extension,$auth_ext))
{
return true;
}
else
{
return false;
}
}
// Diverses test afin de savoir si :
// Le format de fichier correspond à notre tableau array
if(!(isExtAuthorized($extension))){$error = 1;}
// La taille du fichier n'est pas dépassée
if($fileSize > $MAX_FILE_SIZE){$error = 2;}
// Le fichier n'existe pas déjà
if(file_exists($folder."m_".$fileName)){$error = 3;}
// Si tout va bien, c'est bien déroulé
if(copy($fileTmp,''.$folder.''.$fileName.'')) {$error = 0;}
// Switch servant simplement à la gestion des erreures
switch($error){
case'0':
echo("Fichier correctement envoyé.");
break;
case'1':
echo("Problème format de fichier incorrecte.");
break;
case'2':
echo("Problème fichier trop volumineux.");
break;
case'3':
echo("Problème le fichier déjà existant.");
break;
}
} |