Posté(e) le 25 octobre 200519 a J'ai un petit soucis avec l'upload de fichiers vers le serveur en PHP ? Je veux envoyer des fichiers dans un dossier de stockage tout simplement (pas d'information relié dans une BD MySql ou autre, simplement un upload) et ça marche à merveille sauf que si le fichier existe déjà la commande écrase l'ancien fichier sans aucune confirmation... Est-ce qu'il y a un moyen de retourner un erreur (du genre "File already exist") et ne pas écraser le fichier si c'est le cas ? Voici la commande que j'utilise (celle de base finalement): if (copy ($userfile, "/serveur/$userfile_name")) { unlink ($userfile); } Modifié le 27 octobre 200519 a par ggbce
Posté(e) le 26 octobre 200519 a je dirai que le plus simple est de stoquer le nom des différents fichiers uploadé. comme cela à tout nouvel upload tu compare le nom du fichier avec ta liste de nom.
Posté(e) le 26 octobre 200519 a voili : function list_files() { global $the_path; $handle = dir($the_path); print "\n<b>Fichiers uploadés présents sur le serveur :</b><br>"; while ($file = $handle->read()) { if (($file != ".") && ($file != "..")) { print "\n" . $file . "<br>"; }
Posté(e) le 26 octobre 200519 a si tu ne veux pas stocker d'infos, il faut tester avant de lancer la copie si le fichier existe déjà. je sais qu'il y a une fonction pour tester l'existence d'un fichier, mais je m'en souviens plus désolé
Posté(e) le 26 octobre 200519 a j'oubliais : tu peux passer le tout dans un tableau (avec le code de mon poste précédent!) et tu n'a qu'a vérifier si le nom du fichier à envoyé faire parti du tableau! des scripts tout fait et simple existe deja !
Posté(e) le 26 octobre 200519 a Si j'ai bien compris... si $path est le dossier de stockage et $_FILES['fichier']['tmp_name'] le fichier téléchargé if (isset($path . $_FILE['ficher']['tmp_name'])) { //le fichier existe } else { //le fichier n'existe pas }
Posté(e) le 27 octobre 200519 a Auteur J'ai finalement trouvé la réponse ! La commande à utiliser est: $fichier = $userfile_name; //(ou $fichier = $_FILE['ficher']['tmp_name'];) $fpath = "/mondossier/".$fichier; if (is_file($fpath)) { echo ("Le fichier existe déjà"); exit; } else { if (copy ($userfile, "$fpath")) { unlink ($userfile); } echo ("Le fichier <b>$fpath</b> a été ajouté avec succès"); }
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.