(PHP 4 >= 4.0.3, PHP 5, PHP 7, PHP 8)
move_uploaded_file — Déplace un fichier téléchargé
Description
move_uploaded_file(string
$from, string
$to): bool
Ce type de vérification est spécialement important s'il
est possible que les fichiers téléchargés
révèlent leur contenu à l'utilisateur,
ou même aux utilisateurs du même système.
Liste de paramètres
-
from
-
Le nom du fichier téléchargé.
-
to
-
La destination du fichier déplacé.
Valeurs de retour
Retourne true en cas de succès.
Si from n'est pas valide, rien ne se passe,
et move_uploaded_file() retournera false.
Si from est un fichier téléchargé,
mais que pour une raison quelconque, il ne peut être déplacé,
rien ne se passe, et move_uploaded_file()
retourne false. De plus, une alerte sera affichée.
Exemples
Exemple #1 Téléchargement de plusieurs fichiers
<?php
$uploads_dir = '/uploads';
foreach ($_FILES["pictures"]["error"] as $key => $error) {
if ($error == UPLOAD_ERR_OK) {
$tmp_name = $_FILES["pictures"]["tmp_name"][$key];
// basename() peut empêcher les attaques de système de fichiers;
// la validation/assainissement supplémentaire du nom de fichier peut être approprié
$name = basename($_FILES["pictures"]["name"][$key]);
move_uploaded_file($tmp_name, "$uploads_dir/$name");
}
}
?>
Notes
Note:
move_uploaded_file() n'est pas affectée par
l'open_basedir.
Cependant, les restrictions sont placées uniquement sur le
paramètre to qui permet le
déplacement des fichiers chargés dans lesquels
from peut entrer en conflit avec ces
restrictions. move_uploaded_file() permet de
s'assurer de la sécurité de cette opération en autorisant le
déplacement des seuls fichiers chargés via PHP.
Avertissement
Si le fichier de destination existe déjà, il sera écrasé.
Voir aussi
- is_uploaded_file() - Indique si le fichier a été téléchargé par HTTP POST
- rename() - Renomme un fichier ou un dossier
- Voir la section sur les
téléchargements de fichiers pour un exemple d'utilisation