par
fabrice88250 » 20 août 2010, 15:07
Merci sylvain.
j'essai de faire fonctionner ta solution mais au final je n'ai toujours aucun fichiers qui se supprime.
as tu une idées du pourquoi ?
SI C'EST BON SA FONCTIONNE ! C'etait mon bouton qui n'etait pas bon j'ai corrigé.
voici le code complet que j'utilise :
<?php
if($_POST['supprimer_fichiers'] != ""){
/// on récupère le nombre d'éléments postés
$fichiers = array_values($_POST);
$nbre_fichiers = count($fichiers);
/// On enlève la valeur du bouton (car il fait parti des valeurs postées)
$nbre_fichiers = $nbre_fichiers-1;
// on fait la boucle pour supprimer
for($k=0; $k<= $nbre_fichiers; $k++){
unlink($fichiers[$k]);
}
}
?>
<?php
// si les fichiers sont dans ../mesmp3/ et que l'on ne veu que les fichiers d'extension .mp3 (et pas les fichiers ayant une autre extension)
$dossier = '../mesmp3/';
$extension = '.mp3';
$masque = $dossier.'*'.$extension;
//Tableau des fichiers .mp3
$tab = glob("$masque");
natsort($tab);
// Construction du tableau des résultats
$tab_nom_desc = array();
$i=0;
foreach ($tab as $fichier)
{
$fich = basename($fichier,$extension);// suppression du nom de dossier et de l'extension
$fich = str_replace('-',' ',$fich);// remplacement des - par un espace
$fich = explode('_',$fich);// Cf fonction explode
$nom = $fich[0];
$desc = isset($fich[1])? $fich[1] : '';
$tab_nom_desc[$i]['nom'] = $nom;
$tab_nom_desc[$i]['desc'] = $desc;
$tab_nom_desc[$i]['lien'] = $fichier;
$i++;
}
?>
<form method="post" enctype="multipart/form-data" action="#">
<table border="0" cellspacing="5" cellpadding="0">
<tr>
<th scope="col"></th>
<th scope="col"></th>
<th scope="col">Artiste</th>
<th scope="col">Titre</th>
<th scope="col">Extrait</th>
<th scope="col">Poids</th>
</tr>
<?php
$j=0;
//lecture des résultats
foreach ($tab_nom_desc as $value)
{
?>
<tr>
<td bgcolor="#D6D6FE">
<input type="checkbox" name="suppr_<?php echo $j; ?>" value="<?php echo $value['lien']; ?>" id="supp" />
</td>
<td bgcolor="#D6D6FE"><?php $j++; echo $j; ?></td>
<td><?php echo htmlentities(strtoupper($value['nom'])); // strtoupper pour tout en majuscule ?></td>
<td><?php echo htmlentities(ucfirst($value['desc'])); // ucfirst pour mettre majuscule en debut ?></td>
<td>
<object type="application/x-shockwave-flash" data="dewplayer.swf?mp3=<?php echo $value['lien']; ?>" width="200" height="20" id="dewplayer">
<param name="wmode" value="transparent" />
<param name="movie" value="dewplayer.swf?mp3=<?php echo $value['lien']; ?>" />
</object> </td>
<td>
<?php
$sizeo = filesize ($value['lien']);
$size1 = ($sizeo / 1000000);
$size = round($size1, 1);
echo $size.' Mo';
?></td>
</tr>
<?php } ?>
</table>
<input name="supprimer_fichiers" type="submit" id="button" value="Supprimer les fichiers" />
</form>
Par contre je rencontre un problémé avec certain nom de fichiers (je sais c'est pas fien mais j'ai pas le choix).
Certains nom s'appel par exemple : l'histoire-sans-fin_auteur.mp3
ces fichiers ne veulent pas se supprimer pourquoi ? j'imagine que c'est a cause du l'apostro^he alors comment onctourner ce probleme ?
Merci sylvain.
j'essai de faire fonctionner ta solution mais au final je n'ai toujours aucun fichiers qui se supprime.
as tu une idées du pourquoi ?
[color=#00BF00][size=150][b]SI C'EST BON SA FONCTIONNE ! C'etait mon bouton qui n'etait pas bon j'ai corrigé.[/b][/size][/color]
voici le code complet que j'utilise :
[php]
<?php
if($_POST['supprimer_fichiers'] != ""){
/// on récupère le nombre d'éléments postés
$fichiers = array_values($_POST);
$nbre_fichiers = count($fichiers);
/// On enlève la valeur du bouton (car il fait parti des valeurs postées)
$nbre_fichiers = $nbre_fichiers-1;
// on fait la boucle pour supprimer
for($k=0; $k<= $nbre_fichiers; $k++){
unlink($fichiers[$k]);
}
}
?>
<?php
// si les fichiers sont dans ../mesmp3/ et que l'on ne veu que les fichiers d'extension .mp3 (et pas les fichiers ayant une autre extension)
$dossier = '../mesmp3/';
$extension = '.mp3';
$masque = $dossier.'*'.$extension;
//Tableau des fichiers .mp3
$tab = glob("$masque");
natsort($tab);
// Construction du tableau des résultats
$tab_nom_desc = array();
$i=0;
foreach ($tab as $fichier)
{
$fich = basename($fichier,$extension);// suppression du nom de dossier et de l'extension
$fich = str_replace('-',' ',$fich);// remplacement des - par un espace
$fich = explode('_',$fich);// Cf fonction explode
$nom = $fich[0];
$desc = isset($fich[1])? $fich[1] : '';
$tab_nom_desc[$i]['nom'] = $nom;
$tab_nom_desc[$i]['desc'] = $desc;
$tab_nom_desc[$i]['lien'] = $fichier;
$i++;
}
?>
<form method="post" enctype="multipart/form-data" action="#">
<table border="0" cellspacing="5" cellpadding="0">
<tr>
<th scope="col"></th>
<th scope="col"></th>
<th scope="col">Artiste</th>
<th scope="col">Titre</th>
<th scope="col">Extrait</th>
<th scope="col">Poids</th>
</tr>
<?php
$j=0;
//lecture des résultats
foreach ($tab_nom_desc as $value)
{
?>
<tr>
<td bgcolor="#D6D6FE">
<input type="checkbox" name="suppr_<?php echo $j; ?>" value="<?php echo $value['lien']; ?>" id="supp" />
</td>
<td bgcolor="#D6D6FE"><?php $j++; echo $j; ?></td>
<td><?php echo htmlentities(strtoupper($value['nom'])); // strtoupper pour tout en majuscule ?></td>
<td><?php echo htmlentities(ucfirst($value['desc'])); // ucfirst pour mettre majuscule en debut ?></td>
<td>
<object type="application/x-shockwave-flash" data="dewplayer.swf?mp3=<?php echo $value['lien']; ?>" width="200" height="20" id="dewplayer">
<param name="wmode" value="transparent" />
<param name="movie" value="dewplayer.swf?mp3=<?php echo $value['lien']; ?>" />
</object> </td>
<td>
<?php
$sizeo = filesize ($value['lien']);
$size1 = ($sizeo / 1000000);
$size = round($size1, 1);
echo $size.' Mo';
?></td>
</tr>
<?php } ?>
</table>
<input name="supprimer_fichiers" type="submit" id="button" value="Supprimer les fichiers" />
</form>
[/php]
Par contre je rencontre un problémé avec certain nom de fichiers (je sais c'est pas fien mais j'ai pas le choix).
Certains nom s'appel par exemple : l'histoire-sans-fin_auteur.mp3
ces fichiers ne veulent pas se supprimer pourquoi ? j'imagine que c'est a cause du l'apostro^he alors comment onctourner ce probleme ?