Exemple d’une fonction permettant de gérer l’upload d’une image en provenance d’un formulaire. Permet de la renommer et de la placer dans le répertoire voulus en fonctions des paramètres passés. Attention ici on contrôle uniquement le fait que ce soit une image, si on à des contraintes sur la taille du fichier ou les extensions autorisées il faudra rajouter des vérifications.
Comme pour le snippet précédent on imagine cette fonction dans une class « Misc » qui pourrait contenir d’autre fonctions utilitaires variées.
/**
* uploade le fichier image en provenance du input "file" ayant pour nom $fieldName et donne le nom $imgName à l'image
* retourne le nouveau dossier/nom.ext de l'image si upload ok, sinon false
*/
public static function uploadImg($fieldName, $imgName, $target_dir = "../images/") {
if (isset($_FILES[$fieldName]) && $_FILES[$fieldName]["name"] != "") {
$ext = pathinfo($_FILES[$fieldName]["name"], PATHINFO_EXTENSION);
$target_file = $target_dir . $imgName . '.' . $ext;
//contrôle si c'est bien une image
$check = getimagesize($_FILES[$fieldName]["tmp_name"]);
if ($check !== false) {
if (move_uploaded_file($_FILES[$fieldName]["tmp_name"], $target_file)) {
return $target_file;
}
}
}
return false;
}
}
Utilisation (après l’envoi d’un formulaire ayant un input de type « file » ayant pour attribut « name » la valeur « logo ») :
Ping : jQuery : soumettre un formulaire contenant des fichiers grâce à FormData - Pense bête d'un développeur web