A voir également:
- Checkbox supressions fichiers
- Wetransfer gratuit fichiers lourd - Guide
- Renommer plusieurs fichiers en même temps - Guide
- Explorateur de fichiers - Guide
- Fichiers bin - Guide
- Fichiers epub - Guide
13 réponses
Dj Nam
Messages postés
327
Date d'inscription
mardi 9 octobre 2007
Statut
Membre
Dernière intervention
31 janvier 2014
41
11 nov. 2010 à 17:08
11 nov. 2010 à 17:08
<?php /* * Définition des répertoires (dans un tableau) : * / au début pas à la fin */ $directories = array( '/medias/pictures', '/medias/sounds', '/medias/videos' ); // traitement du formulaire if (isset($_POST["act"])) { $listing = $_POST['delete']; foreach ($listing as $fileToDel) { @unlink(dirname(__FILE__) . $fileToDel); } echo "<h2>Suppression des fichiers terminés</h2>"; } ?> <!-- formulaire et listing des fichiers--> <form action="delfiles.php" method="post"> <?php foreach ($directories as $dir) { $dirname = dirname(__FILE__) . $dir; if(is_dir($dirname)) { $handle = opendir($dirname); $nbFiles = 0; echo "<h1>Dossier : " . $dir . "</h1>"; echo "<ul>"; while($file = readdir($handle)) { if($file != '.' && $file != '..' && !is_dir($file)) { // afficher la Case à cocher à coté de chaque fichier echo '<li> <input name="delete[]" type="checkbox" value="'. $dir . '/' . $file.'" /> '.$file.' </li>'; $nbFiles++; } } echo "</ul>"; if ($nbFiles == 0 ) { echo "<p>Dossier vide</p>"; } closedir($handle); } else { echo "<p>Le dossier ". $dir ." n'existe pas </p>"; } } ?> <input name="act" type="submit" value="Supprimer" /> </form>
Voilà, c'est repris et testé !
Les répertoires sont à définir au tout début du fichier. Le point de départ correspond au dossier dans lequel se trouve le script PHP.
Tu peux définir autant de dossier que tu le veux, par contre le script ne prends pas en compte les sous-dossiers.
Ce script est minimaliste mais opérationnel. J'ai aussi entendu dire que le listing serait beaucoup plus facile en PHP 5.3, mais je n'ai pas encore regardé.
kadeh
Messages postés
334
Date d'inscription
vendredi 21 décembre 2007
Statut
Membre
Dernière intervention
15 novembre 2012
92
11 nov. 2010 à 00:52
11 nov. 2010 à 00:52
Bonjour,
la réponse est déjà donnée par Dj Nam
j'ai mis le formulaire et traitement dans une seule page "suppression_fichier.php".
Bonne chance.
la réponse est déjà donnée par Dj Nam
j'ai mis le formulaire et traitement dans une seule page "suppression_fichier.php".
<?php // traitement du formulaire if (isset($_POST["Supprimer"])) { for($i=0,$n=count($_POST["file"]);$i<$n;$i++) { if (!empty($_POST['file'][$i]) && file_exists($_POST['file'][$i])) { unlink($_POST['file'][$i]); } } header("Location: suppression_fichier.php"); } ?> <?php /*les dossiers dont vous voulez lister le contenu. chemin par rapport au script courant.*/ $dirname0 = 'dossier/'; //$dirname1 = 'dossier1/'; //$dirname2 = 'dossier2/'; /* . . . */ ?> <!-- formulaire et listage des fichiers--> <form action="suppression_fichier.php" method="post" name="suppr" > <?php for($i=0; $i<1; $i++) // $i < nombre de répertoire. { $dirname=${'dirname'.$i}; $dir = opendir($dirname); echo'Dossier parent: '.$dirname.'<br />'; while($file = readdir($dir)) { if($file != '.' && $file != '..' && !is_dir($dirname.$file)) { // afficher la Case à cocher à coté de chaque fichier echo '<input name="file[]" type="checkbox" value="'.$dirname.$file.'" /> - '.$file.'<br/>'; } } closedir($dir); } ?> <input name="Supprimer" type="submit" value="Supprimer" /> </form>
Bonne chance.
Dj Nam
Messages postés
327
Date d'inscription
mardi 9 octobre 2007
Statut
Membre
Dernière intervention
31 janvier 2014
41
10 nov. 2010 à 22:51
10 nov. 2010 à 22:51
Bonjour,
Etant donnée que la question est très large voici quelques éléments de réponse avec lesquels je te laisse te dépatouiller un peu :
Pour le listing regarde les fonctions suivantes :
opendir()
readdir()
is_file() et is_dir()
closedir()
Pour les checkbox, si tu leur donne toute le même noms avec des crochets à la fin par exemple ceci :
<input type="checkbox" name="delete[]" value="<?php echo $filie; ?>" />
La variable retournée ($_POST[delete] par exemple) sera un tableau contenant la liste des valeurs cochées
Enfin, pour la suppression, si c'est un fichier, il faut utiliser la fonction unlink(), si c'est un dossier, rmdir()
le tout dans une boucle qui ressemblera à ceci :
foreach ($_POST['delete'] as $file) {
if (is_dir($file)) {
rmdir($file);
} else {
unlink($file);
}
Sur ce, bon courage !
Etant donnée que la question est très large voici quelques éléments de réponse avec lesquels je te laisse te dépatouiller un peu :
Pour le listing regarde les fonctions suivantes :
opendir()
readdir()
is_file() et is_dir()
closedir()
Pour les checkbox, si tu leur donne toute le même noms avec des crochets à la fin par exemple ceci :
<input type="checkbox" name="delete[]" value="<?php echo $filie; ?>" />
La variable retournée ($_POST[delete] par exemple) sera un tableau contenant la liste des valeurs cochées
Enfin, pour la suppression, si c'est un fichier, il faut utiliser la fonction unlink(), si c'est un dossier, rmdir()
le tout dans une boucle qui ressemblera à ceci :
foreach ($_POST['delete'] as $file) {
if (is_dir($file)) {
rmdir($file);
} else {
unlink($file);
}
Sur ce, bon courage !
bonjour et merci de m'aider,
je ne trouve pas où mettre le chemin du répertoire. es-que le script est séparé en deux pages ?
merci d'avance
je ne trouve pas où mettre le chemin du répertoire. es-que le script est séparé en deux pages ?
merci d'avance
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Dj Nam
Messages postés
327
Date d'inscription
mardi 9 octobre 2007
Statut
Membre
Dernière intervention
31 janvier 2014
41
11 nov. 2010 à 13:45
11 nov. 2010 à 13:45
Bonjour,
Tu as le choix, tu peux le faire en deux pages, mais une seule suffit.
Le chemin d'accès se met entre les parenthèses du opendir()
et pour checkbox voici comment je ferais :
Il faut définir au début de la page une variable (constante) contenant le chemin d'accès au dossier par exemple comme ceci :
et dans les checkboxes il faut que la valeur corresponde au nom du fichier comme cela :
et dans ton foreach, ca va ressembler à ceci :
Bon courage !
Tu as le choix, tu peux le faire en deux pages, mais une seule suffit.
Le chemin d'accès se met entre les parenthèses du opendir()
et pour checkbox voici comment je ferais :
Il faut définir au début de la page une variable (constante) contenant le chemin d'accès au dossier par exemple comme ceci :
define('DIR', \www\medias\);
et dans les checkboxes il faut que la valeur corresponde au nom du fichier comme cela :
<input type="checkbox" name="delete[]" value="picture1.png" /> Picture1.png<br /> <input type="checkbox" name="delete[]" value="picture2.png" /> Picture2.png
et dans ton foreach, ca va ressembler à ceci :
foreach ($_POST['delete'] as $fileName) { $file = DIR . $fileName; if (is_dir($file)) { rmdir($file); } else { unlink($file); }
Bon courage !
DJ Nam,
peut tu copier le script de kadeh et mettre un exemple d'un chemin vers un répertoire
merci d'avance
peut tu copier le script de kadeh et mettre un exemple d'un chemin vers un répertoire
merci d'avance
Dj Nam
Messages postés
327
Date d'inscription
mardi 9 octobre 2007
Statut
Membre
Dernière intervention
31 janvier 2014
41
11 nov. 2010 à 16:50
11 nov. 2010 à 16:50
Dans un élan de générosité, je suis en train de reprendre tout le code, de le compléter et de l'optimiser.
Une fois fini, je le posterais ici.
Une fois fini, je le posterais ici.
Dj Nam
Messages postés
327
Date d'inscription
mardi 9 octobre 2007
Statut
Membre
Dernière intervention
31 janvier 2014
41
11 nov. 2010 à 21:14
11 nov. 2010 à 21:14
De rien et bon courage, si besoin, tu sais ou demander =)
bonjour,
dans ton script esceque les noms de fichiers lister font office de liens vers les fichiers.
merci d'avance
dans ton script esceque les noms de fichiers lister font office de liens vers les fichiers.
merci d'avance
Dj Nam
Messages postés
327
Date d'inscription
mardi 9 octobre 2007
Statut
Membre
Dernière intervention
31 janvier 2014
41
26 nov. 2010 à 22:33
26 nov. 2010 à 22:33
Bonjour,
Non, il s'agit d'un simple listing, sans lien. mais c'est très simple d'ajouter le lien.
En remplacant ceci :
echo '<li>
<input name="delete[]" type="checkbox" value="'. $dir . '/' . $file.'" />
.$file.'
</li>';
par cela :
echo '<li>
<input name="delete[]" type="checkbox" value="'. $dir . '/' . $file.'" />
<a href="'.$dir.'/'.$file.'">'.$file.'</a>
</li>';
Non, il s'agit d'un simple listing, sans lien. mais c'est très simple d'ajouter le lien.
En remplacant ceci :
echo '<li>
<input name="delete[]" type="checkbox" value="'. $dir . '/' . $file.'" />
.$file.'
</li>';
par cela :
echo '<li>
<input name="delete[]" type="checkbox" value="'. $dir . '/' . $file.'" />
<a href="'.$dir.'/'.$file.'">'.$file.'</a>
</li>';
peut tus meut dire si sur ce moteur de recherche de fichier le nom du fichier fait office de lien vers le fichier si non comment ajouter cette fonctionnalité
merci d'avance
// Mettre le chemin du répertoire $d = dir("C:\Program Files (x86)"); if(isset($_POST['submit']) AND !empty($_POST['mot'])){ $mot = trim($_POST['mot']); while($entry = $d->read()) { preg_match("#($mot+?)#s", $entry, $new); $data = trim($new[1]); if (!empty($data)) echo '<a href="'.$entry.'">'.$data.'</a><br />'; } $d->close(); } ?> <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> <input type="text" name="mot"> <input type="submit" name="submit" value="Envoyer"> </form>
merci d'avance