Bonjour,
Je souhaiterais pouvoir faire une suppression automatique d'un fichier en php. Je fais un module de news, et si je modifie l'image de cette news, je voudrais pouvoir supprimer celle qui existait déjà de mes dossiers.
Voici le code qui permettrait de traiter cela :
et l'erreur que ca me renvoit :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 <?php $id = $_POST["id"]; $ancien_fichier = mysql_query("SELECT image FROM news WHERE id=$id"); $result = mysql_query($ancien_fichier); unlink('../../images/news/'.$result.''); $nomFichier2 = $_FILES['Fichier']['name']; $cheminFichier2 = $_FILES['Fichier']['tmp_name']; // Création d'un nom unique avec time() // Récupération du seul nom de fichier avec basename() $nouveauNom2 = time() . "-" . basename($nomFichier2); $nouveauFichier2 = REPERTOIRE_DEPOT . SEPARATEUR_FICHIERS . $nouveauNom2; if (file_exists($nouveauFichier2)) { die ('Le fichier existe déjà !'); } // déplacement du fichier dans le répertoire dépôt if (move_uploaded_file($cheminFichier2, $nouveauFichier2)) { echo ""; } else { echo "Erreur au versement du fichier $nomFichier2 !"; } // On protège la variable "id_news" pour éviter une faille SQL $_POST['id_news'] = addslashes($_POST['id_news']); // C'est une modification, on met juste à jour le titre et le contenu mysql_query("UPDATE news SET titre='" . $titre . "', contenu='" . $contenu . "', image='" . $nouveauNom2 . "' WHERE id='" . $_POST['id_news'] . "'");?>
Je ne comprends pas trop le bug, j'ajoute également que quand j'essaie de faire un echo de $ancien_fichier, ça me renvoie comme erreur : "Resource id #5"...
Code : Sélectionner tout - Visualiser dans une fenêtre à part Warning: unlink(../../images/news/) [function.unlink]: Permission denied in C:\wamp\www\Blog\pages\admin\cgi_news.php on line 50
Partager