pour être peut être plus clair voici l’entièreté du code mais avant de le donner, une petite précision : à la base le code fonctionnait parfaitement mais avec des chemins écrit comme ceci : "../../pics/" ou "../../mini" j'ai modifié le code car j'ai plusieurs galeries de photos et je voudrais ne plus avoir une partie admin dans chaque galerie mais une seule partie admin que je gérerais à partir d'un formulaire avec liste déroulantes donc je cherche à modifier "../../mini" par ../../ .$sup. /mini" ou $sup est le nom de la galerie sur laquelle faire des modifs
voici le code :
<?php
$sup = $_POST["sup"];
// on défini le répertoire où sont stockées les images de grande taille
$dir = "../../" .$sup. "/pics";
// on défini le répertoire où seront stockées les miniatures
$dir_mini = "../../" .$sup. "/mini";
// on défini une variable $ratio qui vaudra 150 dans notre cas (150 pixels). En fait, pour nos miniatures, nous allons respecter le ratio de l'image originale, mais nous allons forcer sa taille à 150 pixels, soit en hauteur soit en largeur (tout dépend de l'orientation de notre image : paysage ou portrait).
$ratio = 150;
// on teste si le formulaire permettant d'uploader un fichier a été soumis
if (isset($_POST['go'])) {
// on teste si le champ permettant de soumettre un fichier est vide ou non
if (empty($_FILES['mon_image']['tmp_name'])) {
// si oui, on affiche un petit message d'erreur
$erreur = 'Aucun fichier envoyé.';
}
else {
// on examine le fichier uploadé en récupérant de nombreuses informations sur ce fichier (je vous suggère de regarder la documentation de la fonction getimagesize pour de plus amples informations)
$tableau = @getimagesize($_FILES['mon_image']['tmp_name']);
if ($tableau == FALSE) {
// si le fichier uploadé n'est pas une image, on efface le fichier uploadé et on affiche un petit message d'erreur
unlink($_FILES['mon_image']['tmp_name']);
$erreur = 'Votre fichier n\'est pas une image.';
}
else {
// on teste le type de notre image : jpeg ou png
if ($tableau[2] == 2 || $tableau[2] == 3) {
// si on a déjà un fichier qui porte le même nom que le fichier que l'on tente d'uploader, on modifie le nom du fichier que l'on upload
if (is_file("../../" .$sup. "/pics/".$_FILES['mon_image']['name'])) $file_upload = '_'.$_FILES['mon_image']['name'];
else $file_upload = $_FILES['mon_image']['name'];
// on copie le fichier que l'on vient d'uploader dans le répertoire des images de grande taille
copy ($_FILES['mon_image']['tmp_name'], $dir.'/'.$file_upload);
// il nous reste maintenant à générer la miniature
// si notre image est de type jpeg
if ($tableau[2] == 2) {
// on crée une image à partir de notre grande image à l'aide de la librairie GD
$src = imagecreatefromjpeg($dir.'/'.$file_upload);
// on teste si notre image est de type paysage ou portrait
if ($tableau[0] > $tableau[1]) {
$im = imagecreatetruecolor(round(($ratio/$tableau[1])*$tableau[0]), $ratio);
imagecopyresampled($im, $src, 0, 0, 0, 0, round(($ratio/$tableau[1])*$tableau[0]), $ratio, $tableau[0], $tableau[1]);
}
else {
$im = imagecreatetruecolor($ratio, round(($ratio/$tableau[0])*$tableau[1]));
imagecopyresampled($im, $src, 0, 0, 0, 0, $ratio, round($tableau[1]*($ratio/$tableau[0])), $tableau[0], $tableau[1]);
}
// on copie notre fichier généré dans le répertoire des miniatures
imagejpeg ($im, $dir_mini.'/'.$file_upload);
}
elseif ($tableau[2] == 3) {
$src = imagecreatefrompng($dir.'/'.$file_upload);
if ($tableau[0] > $tableau[1]) {
$im = imagecreatetruecolor(round(($ratio/$tableau[1])*$tableau[0]), $ratio);
imagecopyresampled($im, $src, 0, 0, 0, 0, round(($ratio/$tableau[1])*$tableau[0]), $ratio, $tableau[0], $tableau[1]);
}
else {
$im = imagecreatetruecolor($ratio, round(($ratio/$tableau[0])*$tableau[1]));
imagecopyresampled($im, $src, 0, 0, 0, 0, $ratio, round($tableau[1]*($ratio/$tableau[0])), $tableau[0], $tableau[1]);
}
imagepng ($im, $dir_mini.'/'.$file_upload);
}
// on redirige l'administrateur vers l'accueil de la partie admin
header('location: supprime.php');
exit();
}
else {
// si notre image n'est pas de type jpeg ou png, on supprime le fichier uploadé et on affiche un petit message d'erreur
unlink($_FILES['mon_image']['tmp_name']);
$erreur = 'Votre image est d\'un format non supporté.';
}
}
}
}
// on teste si le formulaire permettant de supprimer un fichier à été soumis
if (isset($_GET['del'])) {
if (empty($_GET['del'])) {
// si le paramètre n'est pas renseignée, on affiche un petit message d'erreur
$erreur = 'Aucune image à supprimer';
}
else {
$pic_a_zapper = $_GET['del'];
// si l'image existe ainsi que sa miniature, on les supprime
if (is_file('"../../" .$sup. "/mini/"'.$pic_a_zapper) && is_file('"../../" .$sup. "/pics/"'.$pic_a_zapper)) {
unlink('"../../" .$sup. "/mini/"'.$pic_a_zapper);
unlink('"../../" .$sup. "/pics/"'.$pic_a_zapper);
}
// si l'image ou la miniature n'existe pas, on affiche un message d'erreur
else {
$erreur = 'Image non reconnue';
}
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="fr-FR">
<head>
<title>test</title>
<link type="text/css" rel="stylesheet" href="../../css/images.css" />
<link type="text/css" rel="stylesheet" href="../../css/accueil.css" />
<link type="text/css" rel="stylesheet" href="../../css/menu.css" />
<link type="text/css" rel="stylesheet" href="../../css/admin.css" />
<script type="text/javascript" language="javascript" src="../../js/script.js"></script>
<script src="../../script/jquery.js" type="text/javascript"></script> <!-- fond d'ecran extensible-->
<script src="../../script/background.js" type="text/javascript"></script> <!-- fond d'ecran extensible-->
<link rel="shortcut icon" href="../../images/55.ico">
</head>
<body>
<div id="centrale" class="rond">
<div id="global" class="rond">
<!-- ---------------------------------------------------- -->
<div id="entete" class="rond">
<div id="header" class="rond"> <!-- Start Logo-->
<div id="logo_title">
test
</div><!-- End Logo -->
</div><br />
</div>
<!-- ---------------------------------------------------- -->
<div id="menu" class="rond">
<ul>
<li><a href="../../../../">Accueil</a></li>
<!-- <li><a href="phenix/">Agenda</a></li> -->
<li><a href="../../../../citations/">Citations</a></li>
<li><a href="../../../../fe/">Fond d'écran</a></li>
<li><a href="../../../../drole/">Images drôles</a></li>
<li><a href="#"><font class="active">Admin</font></a></li>
<li><a href="../../../../zik/">Zik</a></li>
</ul>
</div>
<!-- ---------------------------------------------------- -->
<div id="main" class="rond">
<!-- on affiche un formulaire permettant d'uploader une image -->
<br /><hr />
<div class="table1 rond" >
<!--<div>
Retour à la partie admin :<br /><br />
</div>-->
<form action="index.html" method="post" border="0"><br />
<input type="hidden" value="80" name="style" id="style" />
<p><input type="submit" name="envoi" id="envoi" value="Retour à la partie admin" /></p><br />
</form>
<br />
</div>
<br />
<div class="table2 rond" >
<!-- on affiche toutes les miniatures muniesd'un lien permettant de supprimer les images -->
Un clic sur la photo pour la supprimer de la galerie :<br /><hr />
<?php
// l'étude de cette portion de code a déjà été faite plus haut
$tableau = array();
$dossier = opendir ("../../" .$sup. "/mini/");
while ($fichier = readdir ($dossier)) {
if ($fichier != '.' && $fichier != '..' && $fichier != 'supprime.php') {
$tableau[] = $fichier;
}
}
closedir ($dossier);
$nbcol=3;
$nbpics = count($tableau);
if ($nbpics != 0) {
echo '<table>';
for ($i=0; $i<$nbpics; $i++){
if($i%$nbcol==0) echo '<tr>';
// on affiche un lien sur la photo permettant de la supprimer
echo '<td class="cadre rond"><a href="supprime.php?del=' . $tableau[$i] . '"><img src="../../' .$sup. '/mini/' . $tableau[$i] . '" alt="Image" /></a></td>';
if($i%$nbcol==($nbcol-1)) echo '</tr>';
}
echo '</table>';
}
else echo 'Aucune image à afficher';
// si un message d'erreur est défini, on l'affiche
if (isset($erreur)) echo '<br />' , $erreur;
?>
</div>
</div>
<br /><br />
</div>
<!-- ---------------------------------------------------- -->
<div id="footer" class="rond">
<div class="footer">Designed By : Padymen, V6.0</div>
</div>
<!-- ---------------------------------------------------- -->
</div>
</body>
</html>