Supprimer un fichier d'une arborescence
Résolu/Fermé
LaChaux78
Messages postés
577
Date d'inscription
lundi 25 juillet 2016
Statut
Membre
Dernière intervention
3 novembre 2024
-
21 juil. 2019 à 07:07
LaChaux78 Messages postés 577 Date d'inscription lundi 25 juillet 2016 Statut Membre Dernière intervention 3 novembre 2024 - 24 juil. 2019 à 13:48
LaChaux78 Messages postés 577 Date d'inscription lundi 25 juillet 2016 Statut Membre Dernière intervention 3 novembre 2024 - 24 juil. 2019 à 13:48
A voir également:
- Supprimer un fichier d'une arborescence
- Fichier rar - Guide
- Supprimer une page word - Guide
- Impossible de supprimer un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Comment réduire la taille d'un fichier - Guide
10 réponses
yg_be
Messages postés
23312
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
6 novembre 2024
Ambassadeur
1 552
21 juil. 2019 à 09:28
21 juil. 2019 à 09:28
bonjour, quel est l'obstacle à la mise en place la fonction "unlink" pour la suppression?
LaChaux78
Messages postés
577
Date d'inscription
lundi 25 juillet 2016
Statut
Membre
Dernière intervention
3 novembre 2024
32
21 juil. 2019 à 18:03
21 juil. 2019 à 18:03
Bonjour, En fait je ne sais pas ou la positionner pour avoir une condition par exemple.
Etes vous sur de vouloir supprimer le fichier azerty.jpg ? oui - non
Merci pour votre aide.
Etes vous sur de vouloir supprimer le fichier azerty.jpg ? oui - non
Merci pour votre aide.
yg_be
Messages postés
23312
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
6 novembre 2024
1 552
Modifié le 21 juil. 2019 à 18:41
Modifié le 21 juil. 2019 à 18:41
as-tu décidé comment le site allait interagir avec l'utilisateur pour cette suppression de fichier?
une méthode simple (à programmer) serait d'envoyer à l'utilisateur une page avec des liens de suppression pour chacun des fichiers.
une méthode simple (à programmer) serait d'envoyer à l'utilisateur une page avec des liens de suppression pour chacun des fichiers.
LaChaux78
Messages postés
577
Date d'inscription
lundi 25 juillet 2016
Statut
Membre
Dernière intervention
3 novembre 2024
32
21 juil. 2019 à 19:40
21 juil. 2019 à 19:40
j'ai oublié de préciser que seul l'administrateur allait pouvoir supprimer une photo au même titre qu'il insert les photos pour la galerie avec un formulaire qui lui est dédié.
yg_be
Messages postés
23312
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
6 novembre 2024
1 552
21 juil. 2019 à 20:21
21 juil. 2019 à 20:21
tu n'as pas répondu à ma question en #3.
une question supplémentaire: comment détermines-tu qu'il s'agit de l'administrateur?
une question supplémentaire: comment détermines-tu qu'il s'agit de l'administrateur?
LaChaux78
Messages postés
577
Date d'inscription
lundi 25 juillet 2016
Statut
Membre
Dernière intervention
3 novembre 2024
32
21 juil. 2019 à 20:40
21 juil. 2019 à 20:40
Pour l'administrateur du site il existe un sous domaine avec un fichier htaccess et passwd ou il gére la totalité du site, membres galerie etc...
yg_be
Messages postés
23312
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
6 novembre 2024
1 552
21 juil. 2019 à 20:52
21 juil. 2019 à 20:52
tu n'as pas répondu à ma question en #3.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
LaChaux78
Messages postés
577
Date d'inscription
lundi 25 juillet 2016
Statut
Membre
Dernière intervention
3 novembre 2024
32
21 juil. 2019 à 21:06
21 juil. 2019 à 21:06
c'est cette question "as-tu décidé comment le site allait interagir avec l'utilisateur pour cette suppression de fichier?"
je ne saisi pas trop ce que tu me demande car je ne vois pas la relation entre le site avec l'utilisateur et la suppression d'une photo.
Lorsque l'admin supprime une photo elle sera tout simplement supprimer de la galerie du site.
Je ne sais pas si cela réponds à ta question sinon peux tu me l'a reformuler, merci.
je ne saisi pas trop ce que tu me demande car je ne vois pas la relation entre le site avec l'utilisateur et la suppression d'une photo.
Lorsque l'admin supprime une photo elle sera tout simplement supprimer de la galerie du site.
Je ne sais pas si cela réponds à ta question sinon peux tu me l'a reformuler, merci.
jordane45
Messages postés
38273
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
6 novembre 2024
4 696
21 juil. 2019 à 21:38
21 juil. 2019 à 21:38
Bonjour,
L'utilisateur... c'est celui qui UTILISE ... peut importe qu'il ait un rôle d'administrateur ou non.
Par exemple.. toi tu es un UTILISATEUR du forum commentcamarche.net ..... moi aussi (bien que modérateur..)
Bref...
Pour reformuler la question d' Yg_be ...
Comment, la personne qui va devoir supprimer les photos, va t-elle procéder ?
Car, comme il te l'a proposé, le plus simple serait de mettre un bouton ( un lien....) à chaque Image pour que lorsqu'il cliquera dessus ( il = l'utilisateur = une personne qui va utiliser la page = l'administrateur ) puisse demander la suppression du fichier.
L'utilisateur... c'est celui qui UTILISE ... peut importe qu'il ait un rôle d'administrateur ou non.
Par exemple.. toi tu es un UTILISATEUR du forum commentcamarche.net ..... moi aussi (bien que modérateur..)
Bref...
Pour reformuler la question d' Yg_be ...
Comment, la personne qui va devoir supprimer les photos, va t-elle procéder ?
Car, comme il te l'a proposé, le plus simple serait de mettre un bouton ( un lien....) à chaque Image pour que lorsqu'il cliquera dessus ( il = l'utilisateur = une personne qui va utiliser la page = l'administrateur ) puisse demander la suppression du fichier.
LaChaux78
Messages postés
577
Date d'inscription
lundi 25 juillet 2016
Statut
Membre
Dernière intervention
3 novembre 2024
32
22 juil. 2019 à 11:19
22 juil. 2019 à 11:19
Bonjour
Merci pour vos explications très explicite. Par contre j'ai créé un lien pour la suppression sélective de photos avec le chemin absolu mais cela me retourne une erreur. Pourtant le chemin est correct. Pouvez-vous me dire ce que vous en pensez, merci.
Merci pour vos explications très explicite. Par contre j'ai créé un lien pour la suppression sélective de photos avec le chemin absolu mais cela me retourne une erreur. Pourtant le chemin est correct. Pouvez-vous me dire ce que vous en pensez, merci.
Warning: unlink(/home/site/www/upload/albulle/data/photos/585532_0.jpg): No such file or directory in...
$supp = ('/home/site/www/upload/albulle/data/photos'); $html_fils .= str_repeat("\t",$niv + 2).'<li class="sup" id="fil_'.$id.'"><a href="'.unlink($supp.'/'.$entry).'"><img src="img/supp.png " alt="supp"/></a><a href="'.$dirpub.'/'.$entry.'" target="_blank">'.$entry.'</a></li>'."\n";
yg_be
Messages postés
23312
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
6 novembre 2024
1 552
22 juil. 2019 à 11:33
22 juil. 2019 à 11:33
si je comprends bien, tu as donc choisi d'offrir à l'utilisateur un lien qui lui permettra, en cliquant ce lien, de déclencher la suppression du fichier.
pour réaliser cela, je suggère de faire ainsi:
- créer une nouvelle page php, disons supprimerfichier.php, dans laquelle et vas verifier que l'utilisateur est bien l'administrateur, qui va récupérer le nom du fichier, et qui va supprimer le fichier.
- dans ta page qui envoie la liste des fichiers, envoyer aussi des liens vers la nouvelle page, incluant le nom relatif du fichier à supprimer, par exemple:
pour réaliser cela, je suggère de faire ainsi:
- créer une nouvelle page php, disons supprimerfichier.php, dans laquelle et vas verifier que l'utilisateur est bien l'administrateur, qui va récupérer le nom du fichier, et qui va supprimer le fichier.
- dans ta page qui envoie la liste des fichiers, envoyer aussi des liens vers la nouvelle page, incluant le nom relatif du fichier à supprimer, par exemple:
supprimerfichier.php/?fic=585532_0.jpg
LaChaux78
Messages postés
577
Date d'inscription
lundi 25 juillet 2016
Statut
Membre
Dernière intervention
3 novembre 2024
32
22 juil. 2019 à 12:26
22 juil. 2019 à 12:26
Bonjour, en fait je m'explique mal dans ma tête c'est clair mais mes explications ne le sont pas. Il n'y a pas besoin de vérifier si l'utilisateur est l'administrateur.
J'ai créé un sous domaine exemple.
www.gestion.monsite.fr
Une personne se connecte par le biais des fichiers htaccess et passwd. et là il y a le formulaire pour insérer les photos et beaucoup d'autre chose concernant la gestion du site.
Je souhaite simplement créé un lien supprimer à ma liste de photo et en cliquant dessus cela me supprime la photo.
J'ai créé un sous domaine exemple.
www.gestion.monsite.fr
Une personne se connecte par le biais des fichiers htaccess et passwd. et là il y a le formulaire pour insérer les photos et beaucoup d'autre chose concernant la gestion du site.
Je souhaite simplement créé un lien supprimer à ma liste de photo et en cliquant dessus cela me supprime la photo.
yg_be
Messages postés
23312
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
6 novembre 2024
1 552
Modifié le 22 juil. 2019 à 12:44
Modifié le 22 juil. 2019 à 12:44
le lien "supprimer" ne peut pas supprimer la photo de la manière dont tu l'imagines. le lien doit faire appel à une page php qui va supprimer la photo. le lien sera donc, par exemple:
supprimerfichier.php est une nouvelle page, à créer, bien protégée dans le sous domaine réservé aux administrateurs, et, dans cette page, le code PHP va récupérer le nom du fichier, et va supprimer le fichier.
supprimerfichier.php/?fic=585532_0.jpg
supprimerfichier.php est une nouvelle page, à créer, bien protégée dans le sous domaine réservé aux administrateurs, et, dans cette page, le code PHP va récupérer le nom du fichier, et va supprimer le fichier.
jordane45
Messages postés
38273
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
6 novembre 2024
4 696
22 juil. 2019 à 12:31
22 juil. 2019 à 12:31
Bonjour,
Le message d'erreur
Indique qu'il ne trouve pas le fichier à l'emplacement indiqué.
Soit il n'a pas le bon nom, soit le chemin n'est pas le bon...
Pour que l'on puisse t'aider il faudrait que l'on puisse voir le code PHP qui fait le unlink...
Il faudrait également que tu nous confirmes le chemin EXACT de tes fichiers (celui de l'exemple )...
Attention à bien respecter les Majuscules/Miunuscules...
Le message d'erreur
Warning: unlink(/home/site/www/upload/albulle/data/photos/585532_0.jpg): No such file or directory in...
Indique qu'il ne trouve pas le fichier à l'emplacement indiqué.
Soit il n'a pas le bon nom, soit le chemin n'est pas le bon...
Pour que l'on puisse t'aider il faudrait que l'on puisse voir le code PHP qui fait le unlink...
Il faudrait également que tu nous confirmes le chemin EXACT de tes fichiers (celui de l'exemple )...
Attention à bien respecter les Majuscules/Miunuscules...
LaChaux78
Messages postés
577
Date d'inscription
lundi 25 juillet 2016
Statut
Membre
Dernière intervention
3 novembre 2024
32
23 juil. 2019 à 16:08
23 juil. 2019 à 16:08
Bonjour,
Là je suis vraiment perdu.
Je vais essayer de vous détaillé très précisément. J'ai une page avec mon formulaire d'insertion de photo qui marche bien. Sur la même page une fonction qui me permet d'avoir l'arborescence de ma galerie qui fonctionne également bien.
Dans cette fonction il y a un lien qui me permet d'ouvrir chaque photo sur ce lien j'ai rajouté une image qui me renvoie sur une autre page "supp_photo.php" afin de supprimer chaque photo de façon sélective et c'est là que je suis perdu à propos su script de suppression. Je vous remercie.
Insertion galerie
fonction arborescence galerie
appel à la fonction et mon formulaire d'insertion
Là je suis vraiment perdu.
Je vais essayer de vous détaillé très précisément. J'ai une page avec mon formulaire d'insertion de photo qui marche bien. Sur la même page une fonction qui me permet d'avoir l'arborescence de ma galerie qui fonctionne également bien.
Dans cette fonction il y a un lien qui me permet d'ouvrir chaque photo sur ce lien j'ai rajouté une image qui me renvoie sur une autre page "supp_photo.php" afin de supprimer chaque photo de façon sélective et c'est là que je suis perdu à propos su script de suppression. Je vous remercie.
Insertion galerie
$action = 'new'; $a = !empty($_GET['a']) ? $_GET['a'] : NULL; $submit = !empty($_POST['submit']) ? $_POST['submit'] : NULL; $haction = !empty($_POST['haction']) ? $_POST['haction'] : NULL; $idfoto = !empty($_REQUEST['idfoto']) ? $_REQUEST['idfoto'] : NULL; $datefoto = !empty($_POST['datefoto']) ? dw2m($_POST['datefoto']) : ''; $lieufoto = !empty($_POST['lieufoto']) ? strtoupper($_POST['lieufoto']) : ''; $files = !empty($_FILES['namefoto']) ? $_FILES['namefoto'] : ''; $fileName = !empty($files['name']) ? $files['name'] : ''; $fileTemp = !empty($files['tmp_name']) ? $files['tmp_name'] : ''; switch($a) { case 'new': $action = 'new'; break; case 'ls' : $action = 'list'; break; default : $action = 'new'; break; } if($submit) { switch($haction) { case 'new': $dossier = '/home/site/www/upload/albulle/data/photos/'.date("Y", strtotime($datefoto)).'/'.dFR($datefoto).'/'.$lieufoto.'/'; for ($i = 0; $i < count($fileName); $i++) { // Si un fichier a été sélectionné if ($fileName[$i] != NULL) { //Récupération de l'extension du fichier $extension_upload = strtolower( substr( strrchr($fileName[$i], '.') ,1)); //Liste des extensions autorisées $extension_valide = array('jpg', 'gif', 'png', 'jepg'); if (in_array($extension_upload,$extension_valide)) { $fichier_Upload = $fileTemp[$i]; $random = rand(537317, 985120); $fichier_New = "$dossier/" . $random . "_$i" . "." . $extension_upload; //On autorise uniquement les fichiers image de type gif, jpeg et png $type_autorises = array('image/jpg', 'image/gif', 'image/png', 'image/jpeg'); //On récupérer le type MIME du fichier en utilisant la fonction image_type_to_mime_type() $fichier_type = image_type_to_mime_type(exif_imagetype($fichier_Upload)); //On vérifie que le type MIME appartient aux fichiers autorisés if(in_array($fichier_type, $type_autorises)) { if(!is_dir('/home/site/www/upload/albulle/data/photos/'.date("Y", strtotime($datefoto)).'/'.dFR($datefoto).'/'.$lieufoto.'/')) { mkdir('/home/site/www/upload/albulle/data/photos/'.date("Y", strtotime($datefoto)).'/'.dFR($datefoto).'/'.$lieufoto.'/', 0755, true); } if (move_uploaded_file($fichier_Upload, $fichier_New)) { resize_img($fichier_New,$max_size = 1280,$qualite = 100,$type = 'auto'); $typenr = "enregistré"; $success = "<span class='success'>Saisie photos du - ".dFR("$datefoto")." - a été $typenr.</span>"; } } else { $erreur = "<span class='erreur'>Seul les fichiers images sont autorisés !</span>"; } } else { $erreur = "<span class='erreur'>L'extension du fichier n'est pas autorisée !</span>"; } } else { $erreur = "<span class='erreur'>Veuillez sélectionner un fichier !</span>"; } } break; } } switch($action) { case 'new': $title = "Saisie Photos"; $btsub = "Enregistrer"; $datefoto = ""; $lieufoto = ""; $files = ""; break; case 'list': $title = "Supprimer des Photos"; break; } ?>
fonction arborescence galerie
<script> // OUVRIR / FERMER les DOSSIERS : AVEC jQuery $(document).ready(function() { $('#explorateur-dossier').on('click', '.dir', function(event) { $(this).find('ul').first().slideToggle(); event.stopPropagation(); // important }); }); </script> <style> #explorateur-dossier ul { margin:0; padding:0; list-style:none outside none; } #explorateur-dossier .dir { position:relative; padding-left:20px; cursor:pointer; border:solid 1px #c0bbba; } #explorateur-dossier .dir:hover { background-color:#FFFF80; } #explorateur-dossier .sub_dir { position:relative; padding-left:20px; cursor:pointer; display:none; border:solid 0px #FF0000;; } #explorateur-dossier .fil { position:relative; padding-left:20px; } #explorateur-dossier .dir:before { position:absolute; content:''; display:block; width:16px; height:16px; top:2px; left:0; background:url(img/folder.png) no-repeat; } </style> <?php function explore_dir_scan_html($dir, $dirpub, $niv = 0, $id = 0) { $html = null; $html_dirs = null; $html_fils = null; if($niv == 0) { $html .= ' <ul>'."\n"; } if ($handle = opendir($dir)) { $dirFiles = array(); while (false !== ($entry = readdir($handle))) { $dirFiles[] = $entry; $id++; } sort($dirFiles, SORT_NATURAL | SORT_FLAG_CASE); foreach($dirFiles as $entry) { if(is_dir($dir.'/'.$entry)) { // dossier if($entry != '..' && $entry != '.') { $html_dirs .= str_repeat("\t",$niv + 1).'<li class="dir" id="div_'.$id.'">'.$entry."\n"; $html_dirs .= str_repeat("\t",$niv + 2).'<ul class="sub_dir" id="sub_'.$id.'">'."\n"; $html_dirs .= explore_dir_scan_html($dir.'/'.$entry, $dirpub.'/'.$entry, $niv+1, $id); } } else { // fichier $html_fils .= str_repeat("\t",$niv + 2).'<li class="fil" id="fil_'.$id.'"><a href="supp_photo.php?'.$entry.'"><img src="img/supp.png " alt="supp"/></a><a href="'.$dirpub.'/'.$entry.'" target="_blank">'.$entry.'</a></li>'."\n"; } if(is_dir($dir.'/'.$entry)) { if($entry != '..' && $entry != '.') { $html_dirs .= str_repeat("\t",$niv + 2).'</ul>'."\n"; $html_dirs .= str_repeat("\t",$niv + 1).'</li>'."\n"; } } } closedir($handle); $html .= $html_dirs; // dossiers $html .= $html_fils; // fichiers } if($niv == 0) { $html .= ' </ul>'."\n"; } return $html; }; ?>
appel à la fonction et mon formulaire d'insertion
if($action == 'list') { echo '<h1>'.$title.'</h1>'; echo '<nav id="explorateur-dossier">'; echo explore_dir_scan_html('/home/site/www/upload/albulle/data/photos/','http://www.monsite.fr/upload/albulle/data/photos/'); echo '</nav>'; echo dmaj("sais_photo.php"); echo '</div></body></html>'; exit; } echo '<form method="post" name="foto" id="foto" action="'.$_SERVER["PHP_SELF"].'" onsubmit="return verif()" enctype="multipart/form-data">'; echo '<h1>'.$title.'</h1>'; echo '<table>'; echo '<tr>'; echo '<td class="libel">Date</td>'; echo '<td class="data"><input type="text" name="datefoto" id="Saisfoto" size="25" value="'.$datefoto.'" class="oblig" /> jj /mm /aaaa</td>'; echo '</tr><tr>'; echo '<td class="libel">Ajouter Photos</td>'; echo '<td class="data"><input type="file" name="namefoto[]" size="25" value="'.$fileName.'" accept="image/png, image/jpeg, image/gif" multiple="" class="oblig" /> ( max. 20 )</td>'; echo '</tr><tr>'; echo '<td class="libel">Lieu</td>'; echo '<td class="data"><input type="text" name="lieufoto" size="25" value="'.$lieufoto.'" class="oblig" /></td>'; echo '</tr>'; echo '<td>'; echo '<input type="hidden" name="haction" value="'.$action.'" />'; echo '<input type="hidden" name="idfoto" value="'.$idfoto.'" />'; echo '</td>'; echo '<td class="data"><input type="submit" name="submit" value="'.$btsub.'" /></td>'; echo '</tr>'; echo '</table>'; echo '</form>'; echo '<p>NB: La saisie dans les zones à fond jaune pâle est obligatoire.</p>';
jordane45
Messages postés
38273
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
6 novembre 2024
4 696
23 juil. 2019 à 16:43
23 juil. 2019 à 16:43
Nous montrer tout ton code n'a pas spécialement d'intéret...
Il nous faut :
- Le code du fichier supp_photo.php
- Un exemple de lien ( tu peux nous montrer le code d'un lien issue du code source GENERE de la page lorsque tu l'affiches ( pour avoir le code source en question, tu fais un CTRL + u une fois la page affichée dans ton navigateur ))
Il nous faut :
- Le code du fichier supp_photo.php
- Un exemple de lien ( tu peux nous montrer le code d'un lien issue du code source GENERE de la page lorsque tu l'affiches ( pour avoir le code source en question, tu fais un CTRL + u une fois la page affichée dans ton navigateur ))
yg_be
Messages postés
23312
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
6 novembre 2024
1 552
23 juil. 2019 à 16:43
23 juil. 2019 à 16:43
quel est le contenu de la page supp_photo.php?
si tu es absolument certain que seul un administrateur de confiance peut appeler cette page, le lien pourrait être:
supp_photo.php?fichier='.$dir.'/'.$entry
suggestion pour supp_photo.php:
si tu es absolument certain que seul un administrateur de confiance peut appeler cette page, le lien pourrait être:
supp_photo.php?fichier='.$dir.'/'.$entry
suggestion pour supp_photo.php:
$fichier = !empty($_GET['fichier']) ? $_GET['fichier'] : NULL; if ($fichier) { if (unlink($fichier)) { echo "fichier supprimé: " . $fichier; } else { echo "fichier non supprimé: " . $fichier; } else { echo "pas de fichier spécifié"; }
jordane45
Messages postés
38273
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
6 novembre 2024
4 696
23 juil. 2019 à 16:53
23 juil. 2019 à 16:53
Pour l'url... si il y a des "/"' cela peut générer des soucis.
Pensez à faire des https://www.php.net/manual/fr/function.urlencode.php
En ce qui concerne la page de suppression...
Une vérification que le fichier existe avant de le supprimer est une bonne pratique (cela te permet de mettre un message indiquant qu'il n'a pas trouvé le fichier le cas échéant )
Penser également à vérifier le droit en écriture sur le dossier en question.
Toutes ces vérifications sont facilement faisables en php et la documentation se trouve simplement...
file_exists
is_writtable
...
Pensez à faire des https://www.php.net/manual/fr/function.urlencode.php
En ce qui concerne la page de suppression...
Une vérification que le fichier existe avant de le supprimer est une bonne pratique (cela te permet de mettre un message indiquant qu'il n'a pas trouvé le fichier le cas échéant )
Penser également à vérifier le droit en écriture sur le dossier en question.
Toutes ces vérifications sont facilement faisables en php et la documentation se trouve simplement...
file_exists
is_writtable
...
LaChaux78
Messages postés
577
Date d'inscription
lundi 25 juillet 2016
Statut
Membre
Dernière intervention
3 novembre 2024
32
24 juil. 2019 à 13:48
24 juil. 2019 à 13:48
Bonjour,
Je vous remercie très sincèrement. Tout fonctionne à merveille.
Cordialement.
Je vous remercie très sincèrement. Tout fonctionne à merveille.
Cordialement.