[RESOLU] Suppression image php

Eléphanteau du PHP | 12 Messages

27 déc. 2013, 21:27

Bonjour,

J'ai un système d'intégration d'image dans 4 dossiers sur mon serveur via ftp, j'aimerai pouvoir consulter ces images en miniatures et pouvoir les supprimer de façon plus simple que la connexion via un client ftp.

Je patine avec Unlink, je ne sais pas l'utiliser d'où ma présence dans la section "débutant"

Si quelqu'un peut me filer un gros coup de pouce, je suis preneur.

Merci

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

27 déc. 2013, 21:33

salut,


Sans code on ne peux pas t'aider ;)
Qu'est ce que tu ne comprend pas dans l'utilisation de la fonction unlink ?

vu ce que tu demande, il te faut :
- Connaitre les noms des quatre répertoires
- Connaitre les noms des fichiers à supprimer
- utiliser unlink :)

montre nous ce que tu as fait ainsi que les éventuels messages d'erreurs et nous pourrons t'aider plus.

@+
Il en faut peu pour être heureux ......

Eléphanteau du PHP | 12 Messages

27 déc. 2013, 22:02

J'utilise ce code pour visualiser les images, elles sont mélangées (dates et heures) et j'aimerai aussi pouvoir les supprimer selon mes choix.
<?php
// url du fichier qui contient les images
$urlphoto = "/portable";

// nom du répertoire qui contient les images
$nomRepertoire = "portable";
if (is_dir($nomRepertoire))
{
$dossier = opendir($nomRepertoire);
while ($Fichier = readdir($dossier))
{
if ($Fichier != "." AND $Fichier != ".." AND (stristr($Fichier,'.gif') OR stristr($Fichier,'.jpg') OR stristr($Fichier,'.png') OR stristr($Fichier,'.bmp')))
{
// Hauteur de toutes les images
$h_vign = "120";
$taille = getimagesize($nomRepertoire."/".$Fichier);
$reduc = floor(($h_vign*100)/($taille[1]));
$l_vign = floor(($taille[0]*$reduc)/100);

echo '<a target="_blank" href="', $urlphoto, '/',$Fichier, '">';
echo '<img src="', $urlphoto, '/',$Fichier, '" ';
echo "width='$l_vign' height='$h_vign'>";
echo "</a>&nbsp;";
}
}
closedir($dossier);
}else{
echo' Le répertoire spécifié n\'existe pas';
}
?>

Eléphanteau du PHP | 12 Messages

28 déc. 2013, 13:10

Je voulais éditer le post précédent, mais je n'ai pas trouvé.

En cherchant un peu, je suis tombé sur
<?php foreach (glob("*.jpg") as $filename) {

unlink($filename);
}

?>
Lorsque je lance la page, il ne se passe rien. Mes images sont toujours présente.
De plus, cette fonction devraient toutes les supprimer, ce qui ne m'arrange pas.
Je suis toujours à la recherche d'un tri par date et d'une fonction de suppression visuelle et sélective.

Eléphanteau du PHP | 12 Messages

28 déc. 2013, 17:56

Je continue tout seul, mais je ne désespère pas.
<?php
$dossier = "portable";
$dir = opendir($dossier);
while($file = readdir($dir)){

?>
<div id="dossier">
<a href="portable/<?php echo $file; ?>">
<h5 align="center"><?php echo $file; ?></h5>
<img src="portable/<?php echo $file; ?> "height="220px""/>
<h5><a href="<?php unlink($files);?>">Supprimer<a/></h5>
</a>
</div>

<?php
}
closedir($dir);
?>
J'ai mis un lien
<?php unlink($files);?>
, mais il renvoie une erreur 404

Eléphanteau du PHP | 12 Messages

17 janv. 2014, 15:21

Re

J'ai modifié mon code afin de trier les images, et d'affecter une image par défaut à mes fichiers .txt
<?php
//Nom du dossier à scanner
$dossier = '.';
//scandir — Liste les fichiers et dossiers dans un dossier
$tableau = scandir($dossier);
$tableau = array_slice($tableau, 0, -5);
//Tri croissant
sort($tableau);
//On boucle
foreach($tableau as $valeur){
    if ($valeur != "." AND $valeur != ".." AND (stristr($valeur,'.gif') OR stristr($valeur,'.jpg') OR stristr($valeur,'.png') OR stristr($valeur,'.bmp')))
        {    
  
		echo '<a target="_blank" href="'.$valeur.'" title="'.$valeur.'">';
        echo '<img src="'.$valeur.'" '; 
        echo "height=170px>"; 
        echo "</a>&nbsp;"; 
		
        }else{
		 
		echo '<a target="_blank" href="'.$valeur.'" title="'.$valeur.'">';
        echo '<img src="../img/txt.jpg" '; 
        echo "height=170px>"; 
        echo "</a>&nbsp;";
		 }
        }    

?>
Je n'ai toujours pas trouver comment supprimer mes images soit avec un clic droit et une arborescence dans laquelle j'aurais soit supprimer, soit déplacer vers dossier.

Je suis très chiant, mais ça me tiens à coeur.

Eléphanteau du PHP | 12 Messages

20 janv. 2014, 11:10

Merci à ceux qui ont participé, je vous mets le résultat final, il me manque juste un détail qui ne saurait tarder.

Tous les fichiers sont le même dossier.
index.php
<?php include "header.php"; ?>
<html>
<head>
<!-- Add jQuery library -->
<!-- Add jQuery library -->
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>

<!-- Add mousewheel plugin (this is optional) -->
<script type="text/javascript" src="/fancybox/lib/jquery.mousewheel-3.0.6.pack.js"></script>

<!-- Add fancyBox -->
<link rel="stylesheet" href="/fancybox/source/jquery.fancybox.css?v=2.1.5" type="text/css" media="screen" />
<script type="text/javascript" src="/fancybox/source/jquery.fancybox.pack.js?v=2.1.5"></script>

<!-- Optionally add helpers - button, thumbnail and/or media -->
<link rel="stylesheet" href="/fancybox/source/helpers/jquery.fancybox-buttons.css?v=1.0.5" type="text/css" media="screen" />
<script type="text/javascript" src="/fancybox/source/helpers/jquery.fancybox-buttons.js?v=1.0.5"></script>
<script type="text/javascript" src="/fancybox/source/helpers/jquery.fancybox-media.js?v=1.0.6"></script>

<link rel="stylesheet" href="/fancybox/source/helpers/jquery.fancybox-thumbs.css?v=1.0.7" type="text/css" media="screen" />
<script type="text/javascript" src="/fancybox/source/helpers/jquery.fancybox-thumbs.js?v=1.0.7"></script>
</head>
<style>
*{
margin: 0;
}
.croix{
	z-index: 999;
	margin: 0 0 0 -20px;
	float: left;
	visibility: hidden;
}
a{
	text-decoration: none;
	color: white;
}
body{
	background: #555;
	
}
#div{
	margin: 0 auto;
	background: #333;
	width: 1200px;
	height: auto;
	}
ul .images{
	z-index: 1;
	width: auto;
	float: left;
	display: block;
	list-style-type: none; 
	opacity: 0.5;
	padding: 5px;
	margin: 0 auto;
	border: solid #555 2px;
	margin: 15px 0 0 10px;
    -webkit-transition-duration: 0.5s;
    }

ul .images:hover{
    -webkit-transform:scale(1);
    -webkit-box-shadow: 0px 0px 30px #f9f9f9;
	-webkit-border-radius: 10px;
	border: solid #fff 2px;
	opacity: 1;
}
ul .images:hover .croix{
    visibility: visible;
}
</style>
<body>
<script type="text/javascript">
$(document).ready(function() {
	$(".fancybox").fancybox({
		openEffect	: 'none',
		closeEffect	: 'none'
	});
});
</script>

<?php
//Nom du dossier à scanner
$dossier = '.';
//scandir — Liste les fichiers et dossiers dans un dossier
$tableau = scandir($dossier);
$tableau = array_slice($tableau, 2, -4);
//Tri croissant
sort($tableau);
//On boucle
foreach($tableau as $valeur){
    if ($valeur != "." AND $valeur != ".." AND (stristr($valeur,'.gif') OR stristr($valeur,'.jpg') OR stristr($valeur,'.png') OR stristr($valeur,'.bmp')))
        {    
echo '<ul><a class="fancybox" rel="gallery1" href="'.$valeur.'" title="'.$valeur.'"><img class="images" src="'.$valeur.'" height=170px></a> <a href="delete_file.php?nom='.$valeur.'"><img class="croix" src="../img/bouton_supprimer.gif" title="Supprimer"/></a></ul>';
		
     }else{
echo '<ul><a class="fancybox" rel="gallery1" href="'.$valeur.'" title="'.$valeur.'"><img class="images" src="../img/txt.jpg" height=50px></a></ul>';

		 }
        }  
?>

</body>
</html>
Supprimer images:
delete_file.php
<?php
$adresse = "";//Adresse du dossier.
if(isset($_GET['nom']))//Si la variable $_GET['nom'] existe...
{
     //if ($Fichier != "." && $Fichier != "..") //Filtre anti-points
     {
          $nom=''.$adresse.$_GET['nom'].''; //Formatage du nom précédé de l'adresse du dossier dans lequel il se trouve.
          unlink($nom); //Suppression du fichier
          echo 'Le fichier "'.$_GET['nom'].'" a été effacé !<br>'; //Message de confirmation de suppression.
     }
} 
?>
<?php
echo '<script language="Javascript">

document.location.replace("index.php");

</script>';
?>
Voilà pour le plus direct, mon seul problème, c'est l'apparence des croix de suppression qui n'apparaissent pas lorsque je passe la souris sur l'image.

Si je met la class .croix en visibility, les croix apparaissent toujours, c'est très peu esthétique.