$_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 :

Exemple de formulaire 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 :
  1. Vérifier si le contenu que vous attendez existe avec isset
  2. Vérifier la validité du contenu, son extension, sa taille, et pourquoi pas son contenu
  3. Déplacer le fichier uploadé dans un répertoire permanent (et non temporaire) avec la fonction move_uploaded_file
  4. 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...";
	}
}