Gestion de fichiers dans un répertoire
Résolu
danielos77
Messages postés
108
Date d'inscription
samedi 18 février 2006
Statut
Membre
Dernière intervention
16 janvier 2024
-
20 déc. 2023 à 15:00
danielos77 Messages postés 108 Date d'inscription samedi 18 février 2006 Statut Membre Dernière intervention 16 janvier 2024 - 21 déc. 2023 à 17:42
danielos77 Messages postés 108 Date d'inscription samedi 18 février 2006 Statut Membre Dernière intervention 16 janvier 2024 - 21 déc. 2023 à 17:42
A voir également:
- Gestion de fichiers dans un répertoire
- Wetransfer gratuit fichiers lourd - Guide
- Comment réduire la taille d'un fichier - Guide
- Explorateur de fichiers - Guide
- Comment ouvrir un fichier epub ? - Guide
- Renommer plusieurs fichiers - Guide
1 réponse
Bonjour,
Essaye la fonction php glob à la place de scandir pour lister les fichiers (glob ne retourne pas les dossiers spéciaux . et ..) : https://www.php.net/manual/fr/function.glob.php
Ajoute un attribut download sur ton lien de téléchargement : https://www.w3schools.com/tags/att_a_download.asp
Pour supprimer uniquement le fichier cliqué, il faut transmettre via un paramètre get ou post l'identifiant unique du fichier (son nom par exemple).
Attention à bien vérifier dans ton code que le fichier à supprimer correspond bien aux fichiers du dossier upload.
Si tu ne fais pas de vérification, l'utilisateur pourrait supprimer d'autres fichiers de ton serveur.
21 déc. 2023 à 12:20
Bonjour Pitet,
Merci pour la function glob.
J'ai aussi mis l'attribut download (pour moi, c'était évident qui si cela s'affichait à l'écran et que je voulais en garder une copie, il suffisait d'un clic droit sur le lien et enregistrer... mais bon, c'est mis).
Pour la suppression, il y a bien le post du bouton submit, et ça fonctionne pour le fichier identifié avec $fichiers mais je pense que le fait qu'il soit dans la boucle foreach, cela ne s'arrête pas au fichier à côté du bouton mais continue la boucle jusqu'à ce que tous les fichiers aient été effacés du coup.
Si je sors le bouton de la boucle, je n'aurai qu'un seul bouton sur toute la page l'utilisateur ne saura pas clairement ce qu'il supprime. D'où peut-être la piste d'un msgbox qui après avoir cliqué sur un lien pour télécharger demanderait s'il faut supprimer le fichier.
Je vais creuser encore cette partie mais merci en tout cas pour le glob et le conseil du download.
Bonnes fêtes de fin d'année
Daniel
21 déc. 2023 à 12:33
Le msgbox ne pourra pas résoudre ce problème.
L'affichage des boutons supprimer doit se faire dans la boucle pour avoir un bouton supprimer pour chaque fichier (avec un paramètre unique pour chaque bouton).
La suppression du fichier lorsque l'utilisateur clique sur un bouton ne doit pas être fait dans la boucle mais dès le début du script, en récupérant le paramètre unique transmis par le bouton/formulaire pour supprimer uniquement le fichier spécifié.
21 déc. 2023 à 14:56
L'affichage des boutons supprimer doit se faire dans la boucle pour avoir un bouton supprimer pour chaque fichier (avec un paramètre unique pour chaque bouton) ???
Je vois bien de quoi il est question mais je suis totalement incapable d'écrire cela.
Je ne sais pas combien de bouton il faudra créer donc un for ... to... n'est pas utilisable.
Je vais aller fouiller la littérature sur le comptage d'un array.
21 déc. 2023 à 15:25
Effectivement $nb=count(array); fonctionne très bien.
Reste à jouer avec le JS pour donner des noms à mes boutons.
21 déc. 2023 à 16:32
Le JS n'est pas nécessaire, un exemple simple (avec un paramètre get au lieu d'un formulaire post) :