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
|
$dossier = '../upload/test/';// le fichier qui fait l'upload est dans un dossier à la racine et le dossier upload est à la racine
// les dossier upload et test sont en 777
if(is_dir($dossier)){
echo "Le dossier existe<br />";// indique que le dossier existe
}
else{
echo "Le dossier n'existe pas<br />";
}
if (is_writable($dossier)) {
echo 'Le fichier est accessible en écriture.<br />'; // indique que le dossier est accessible en écriture
}
else {
echo 'Le fichier n\'est pas accessible en écriture !<br />';
}
echo "<p>vardump</p><pre>";
var_dump($_FILES); // -> donne 0
echo "</pre><p>fin vardump suivi du print r</p>";
$fichier = basename($_FILES['fichier']['name']);
$taille_maxi = 100000;
//$taille_maxi = 500000;
$taille = filesize($_FILES['fichier']['tmp_name']);
$extensions = array('.png', '.gif', '.jpg', '.jpeg', '.txt', '.pdf');
//$extensions = array('.png', '.gif', '.jpg', '.jpeg', '.txt', '.doc', '.docx', '.xls', '.xlsx', '.odt', '.rtf', '.csv', '.pdf');
$extension = strrchr($_FILES['fichier']['name'], '.');
//Début des vérifications de sécurité...
//Si l'extension n'est pas dans le tableau
if(!in_array($extension, $extensions)) {
$erreur = 'Vous devez uploader un fichier de type png, gif, jpg, jpeg, txt ou doc...'; // ai fait des tests avec des extention qui ne sont pas dans la liste -> renvoi le message d'echec, sinon non
echo '<p>Echec de l\'upload ! PAS LA BONNE EXTENSION</p>';
}
if($taille>$taille_maxi){
$erreur = 'Le fichier est trop gros...'; // idem pour les test de taille en mettant $taille_maxi très faible
echo '<p>Echec de l\'upload ! PAS LE BON POIDS</p>';
}
//S'il n'y a pas d'erreur, on upload
if(!isset($erreur)){
$fichier=normalisation($fichier);// fonction qui supprime les accents, espace... et qui fonctionne (je la mets en dessous)
// J'ai aussi fait un test sans l'utiliser et c'est pareil
//Si la fonction renvoie TRUE, c'est que ça a fonctionné...
if(move_uploaded_file($_FILES['avatar']['tmp_name'], $dossier)) {
echo '<p>Upload effectué avec succès !</p>';
}
//Sinon (la fonction renvoie FALSE).
else {
echo '<p>Echec de l\'upload !</p>';
echo $_FILES['fichier']['error']."<br />";
echo "<p>TEST / ".$_FILES['fichier']['error']['UPLOAD_ERR_INI_SIZE']."</p>";
}
}
else{
echo $erreur;
}
// --------------------------------
function normalisation($nompage) {
$accents = "ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ";
$ssaccents = "AAAAAAaaaaaaOOOOOOooooooEEEEeeeeCcIIIIiiiiUUUUuuuuyNn";
$nompage = strtr($nompage,$accents,$ssaccents);
$in = array(' ', '?', '!', ',', ':', "'", '&', '(', ')');
$out = array('-', '', '', '', '', '', '-', 'et', '', '');
$nompage = str_replace($in, $out, $nompage);
echo "<p> ---------- > Normalisation : nom du fichier = ".$nompage."</p>";
return $nompage;
} |
Partager