supprimer un fichier

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : supprimer un fichier

Re: supprimer un fichier

par AB » 05 juil. 2010, 23:08

Bah une bonne nuit de sommeil ça éclaircit souvent les choses :wink:

En tous cas souviens-toi demain matin que quand tu fais
if(is_file($chemin_du fichier)) echo 'ce fichier '.$chemin_du fichier.' existe'; else 'ce fichier '.$chemin_du fichier.' n\'existe pas OU ce n\'est pas le bon chemin PAR RAPPORT AU SCRIPT EN COURS';
la réponse est là.

EDIT : Arf j'avais pas vu ta réponse :)

Re: supprimer un fichier

par fabrice88250 » 05 juil. 2010, 22:54

Bon ok j'ai trouvé ! lorsque j'inserrait dans ma base de donnée le nom du fichier il y avit un espace qui se glissait derrière l'extension. du coup meme en faisant de echo et tout se que l'on veut je n'y voyais rien.
Merci pour votre aide qui me servira pour la suite.

Re: supprimer un fichier

par AB » 05 juil. 2010, 22:52

Ben si ça t'avance, c'est que $dossier_traite n'est pas bon ... ou que tu testes des fichiers que tu as déjà supprimé.

Re: supprimer un fichier

par fabrice88250 » 05 juil. 2010, 22:48

oui mais sa m'avance pas.
qu'est ce que je peu faire ? le chemin du fichier est pourtant bien celui là car si j'écris $chemin = "../../magazines/logo.pdf"; le logo.pdf est bien supprimé !

Re: supprimer un fichier

par AB » 05 juil. 2010, 22:47

j'ai essayé ta solution et j'ai en retour :
../../magazines/logo.pdf n'est pas un chemin de fichier valide
Tout est dit dans ce retour :wink:

Re: supprimer un fichier

par fabrice88250 » 05 juil. 2010, 22:45

j'ai essayé ta solution et j'ai en retour :
../../magazines/logo.pdf n'est pas un chemin de fichier valide

Re: supprimer un fichier

par AB » 05 juil. 2010, 22:40

Pourquoi tant de complications ? Essaies plutôt
while($result = mysql_fetch_array($requete))
{

$fichier = $result['PDF'];

echo 'Fichier a supprimer : '.$fichier.'<br/>';

$dossier_traite = "../../magazines";
 
$chemin = $dossier_traite.'/'.$fichier; //on définit le chemin du fichier à effacer

//si le chemin est un fichier
if(is_file($chemin)) 

          unlink($chemin)); //on efface
          else 
          echo $chemin.' n\'est pas un chemin de fichier valide;
}

Re: supprimer un fichier

par fabrice88250 » 05 juil. 2010, 22:09

bon alors effectivement si je rentre manuellement mon chemin j'ai bien la suppresion qui fonction.
j'ai donc rentré :
$chemin = "../../magazines/logo.pdf";
et là le fichier logo se supprime bien.
par contre si je met :
$chemin = $dossier_traite."/".$fichier;
echo $chemin;  // donne ../../magazines/logo.pdf
sa ne fonctionne pas !!!! pourtant le chemin est identique !



revoulà le code du while :

while( $result = mysql_fetch_array( $requete ) )
{
echo 'Fichier a supprimer : '.$result['PDF'].'<br/>';
$dossier_traite = "../../magazines";
 
$repertoire = opendir($dossier_traite); //on définit le répertoire dans lequel on souhaite travailler
 
$fichier=$result['PDF'];

$chemin = $dossier_traite."/".$fichier; //on définit le chemin du fichier à effacer
//$chemin = "../../magazines/logo.pdf"; //on définit le chemin du fichier à effacer
echo $fichier; // donne logo.pdf 
echo $chemin;  // donne ../../magazines/logo.pdf
//si le fichier n'est pas un répertoire
if ($fichier != ".." AND $fichier != "." AND !is_dir($fichier))
       {
       unlink($chemin); //on efface
       }

closedir($repertoire);


}

je comprend pas mais sa ne serait pas une histoire de " au niveau du chemin ?
de plus y'a pas plus simple pour une simple suppression de fichier. là sa va que je veu en supprimer qu'un mais si j'en avai a supprimer plusieurs ....

Re: supprimer un fichier

par AB » 05 juil. 2010, 21:51

ok merci pour ton aide en tout cas. je vai faire des essais...

AB quel solution puis-je avoir pour que sa fonctionne ?

j'ai fais un essai pour voir si unlink fonctionne bien et elle fonctionne
<?php
unlink("logo.pdf"); //on efface
?>
le fichier logo s'efface bien.

Alors pourquoimon code qui va chercher le nom dans ma base ne fonctionne pas (ne supprime pas de fichier ?)
Sans doute parce que le chemin que tu récupères dans ta base de donnée n'est pas le bon par rapport au script que tu exécutes. Dans l'exemple que tu donnes il faudrait que la bdd te renvoie "logo.pdf" puisque le test direct avec unlink fonctionne avec ce chemin (qui indique que ton script et le fichier image sont dans le même répertoire).

Faits des test directement avec unlink depuis ton script pour effacer un fichier, et tu verras bien ce qu'il y a à compléter avec les données de ta bdd pour avoir le bon chemin.

Re: supprimer un fichier

par fabrice88250 » 05 juil. 2010, 21:17

ok merci pour ton aide en tout cas. je vai faire des essais...

AB quel solution puis-je avoir pour que sa fonctionne ?

j'ai fais un essai pour voir si unlink fonctionne bien et elle fonctionne
<?php
unlink("logo.pdf"); //on efface
?>
le fichier logo s'efface bien.

Alors pourquoimon code qui va chercher le nom dans ma base ne fonctionne pas (ne supprime pas de fichier ?)

Re: supprimer un fichier

par AB » 05 juil. 2010, 21:16

Il faut avant de supprimer le fichier ouvrir le repertoire dans lequel se trouve le fichier en question.
Depuis quand ? Non c'est pas nécessaire.

Re: supprimer un fichier

par fafa1107 » 05 juil. 2010, 20:17

alors la je botte en touche desolé je vois pas ce qui coince. enfin je n'ai jamais utilisé cette fonction je recherche en meme temps que toi.
Desolé. Je testerai ca plus tard et si j'ai du nouveau je te tiendrai au courant.

Re: supprimer un fichier

par fabrice88250 » 05 juil. 2010, 20:04

j'ai fais un echo $chemin;
j'ai bien le bon chemin qui vas au fichier qui s'affiche : ../../magazines/mag1.pdf

idem avec l'ajout du isset

Re: supprimer un fichier

par fafa1107 » 05 juil. 2010, 19:59

affiche la variable chemin avec un echo pour voir si elle contient bien le chemin vers le fichier a supprimer?
et la variable id est elle bien cree? je t'ai rajouté un isset pour verifier

Re: supprimer un fichier

par fabrice88250 » 05 juil. 2010, 19:55

#-o le fichier est toujours présent sur le serveur.
mon repertoire 'magazines' est en 777 en plus. je comprend pas pourquoi sa ne fonctionne pas.