$_FILES
$_FILES — Variable de téléchargement de fichier via HTTP
Description
Un tableau associatif des valeurs téléchargées au script courant via le protocole HTTP et la méthode POST.
Exemple :
var_dump($_FILES);
Donne actuellement sur ce serveur :
array(0) {
}
Pour tester, vous pouvez validez ce formulaire (d'exemple) d'upload d'image :
Code du formulaire :
<form method="POST" action="" enctype="multipart/form-data">
<h3>Exemple de formulaire d'upload d'image</h3>
<label>Image : <input type="file" name="fichier" placeholder="Choisissez une image..."></label>
<br/>
<input type="submit" value="Envoyer">
</form>
Bonus & Sécurité
Lorsque vous récupérez des données via la variable $_FILES, vous vous devez de respecter ces règles :
- Vérifier si le contenu que vous attendez existe avec isset
- Vérifier la validité du contenu, son extension, sa taille, et pourquoi pas son contenu
- Déplacer le fichier uploadé dans un répertoire permanent (et non temporaire) avec la fonction move_uploaded_file
- NE JAMAIS FAIRE UN INCLUDE OU UN REQUIRE D'UN FICHIER UPLOADER !
Exemple :
if (isset($_FILES['fichier']))
{
$file = $_FILES['fichier'];
if ($file['error'] == 0)
{
if ($file['type'] == 'image/jpeg')
{
$dir = '/home/wasXXX/sites/uploads/';
$name = basename($file['name']);
move_uploaded_file($file['tmp_name'], $dir.$name);
echo "Merci pour votre image !";
echo '<img src="http://localhost/uploads/'.$name.'">';
}
else
{
echo "Nous n'acceptons que des jpeg";
}
}
else
{
echo "Erreur lors de l'upload...";
}
}