par
fredsmn » 08 avr. 2010, 11:43
Bonjour,
Chose promise, chose dûe, je suis de retour avec mes scripts, qui fonctionnent.
Simpleviewer permet d'avoir simplement et rapidement une Galerie d'images sur son espace web. Vous pouvez le téléchoper gratuitement à cette adresse:
simpleviewer
Pour en savoir plus sur son uilisation, je vous propose d'aller voir par ici:
tutorial
Pour ma femme j'ai fait un site avec une telle galerie. Il met alors venue l'idée de lui simplifier la tâche et d'eviter l'emploi d'un logiciel ftp ou encore de passer par photoshop pour modifier la dite galerie, et de lui permettre de gérer tout ça depuis un espace privé de son site.
Il est donc possible d'ajouter et de retirer des images une par une de la galerie. Pour celà, le script utilise deux techniques différentes, suivant que l'on veuille ajouter ou supprimer une image. Dans le premier cas, il ajoute les lignes ad-hoc à la playlist xml, et dans le second cas il reconstruit une playlist à partir des images restantes dans le dossier thumbs.
Le script construit également la vignette en tenant compte du format portrait ou paysage de l'image et conserve les proportions. Au moment de l'upload, les caractères interdits, espaces et autres sont retirés et remplacés.
L'ensemble comprend deux fichiers php, le premier est celui qui contient la fonction de scan des images présentes dans la galerie web. Cette fonction affiche sous forme d'un tableau les vignettes contenues dans le dossier thumbs. Chaque vingette est representé avec un bouton en X en dessous pour la supprimer. Le nombres de colonnes est modulable.
Quelques reflexions:
* On pourrait modifier le script pour reconstruire la playlist en fonction des dates de transfert des images sur le site pour conserver une chronologie.
* on pourrait aussi utiliser la technique de reconstruction de l'xml pour ajouer des images, cette fois aprés upload de l'image.
* Ici, j'ai fait au plus simple. Il n'y avait pas besoin de titre pour les images, j'ai laissé vide. Une solution simple pour donner un titre aux images serait de leur donner le même nom de fichier et d'en retirer l'extension. Exemple: Anniversaire_Cloe_2010.jpg --> Anniversaire_Cloe_2010
Si on veut aller plus loin dans ce domaine, il faudra envisager une BDD ou encore de passer par un fichier CSV.
* L'entête xml utilisé pour la reconstruction du fichier est celle que j'uilise pour ce site. Modifiez là suivant votre galerie.
Le script fonction.php
<?php
// Fred Simian
// Module Fonctions pour gallerie simpleviewer
// 2010
//
function ScanThumbs($dir){
$docu=0;
$listfiles = array();
$filesext = array('jpg','jpeg','png','gif',); // exensions permises
if (substr($dir, -1, 1) !== '/') $dir .= '/'; // On vérifie que le dernier caractère de la chaîne "$dir" soit un "/" sinon on en ajoute un.
if (is_dir($dir) AND ($dh = opendir($dir)) !== FALSE) { // On vérifie que la variable "$dir" indique un dossier et on l'ouvre dans la variable "$dh".
while (($file = readdir($dh)) !== FALSE) { // On lit chaques fichiers.
$temp = explode('.', $file);
for($t=0;$t<sizeof($filesext);$t++) // tant que $t est inferieur au nombre d'éléments du tableau...
{
if (strtolower(end($temp)) === $filesext[$t]) {
$listfiles[$docu] = $file;
$docu++;
}
}
}
if (strtolower(end($temp)) === "pdf"){ $cible="_blank";} else { $cible="";}
closedir($dh); // Quand le dossier a été lu, on le referme.
sort($listfiles); // On trie les fichiers par leur clés.
$temp = array_keys($listfiles);
if ($docu > 0){
$i = -1;
$Ncpt=0;
echo '<table align=center>';
while (isset($temp[++$i]))
{
if ($Ncpt==0){echo '<tr>';}
echo '<td align=center>';
echo "<form action='upload.php' method='post'>";
echo '<img src="',$dir,$listfiles[$temp[$i]],'" >';
echo '<br><input type="hidden" name="erase" value="'.$dir.$listfiles[$temp[$i]].'">
<input type="hidden" name="alone" value="'.$listfiles[$temp[$i]].'">
<input type="submit" name="supprimer" value="X"> ';
echo '</form>';
echo '</td>';
$Ncpt++;
if ($Ncpt>4) { // Modifier le chiffre ici pour adaper le nombres de colonnes à votre largeur de page.
$Ncpt=0;
echo '</tr>';
}
}
echo '</table>';
}
else
{
echo '<table align=center width="95%"><tr>
<td valign=top align=center>Le dossier des images est vide.';
echo '</td>
</tr></table>';
}
}
else
{
echo '<table align=center width="95%"><tr>
<td valign=top align=center>Le dossier des images est vide.';
echo '</td>
</tr></table>';
}
}
?>
Le script upload.php (gestion de la galerie)
<?php
// Fred. Simian
// Gestion d'une galerie d'image Simpleviewer
// en PHP
// 2010
// Compatible Hebergement Free
include ("fonction.php");
$numMo = 1; // Nombre de Mo autorisé par image pour le Upload.
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Tes Simpleviewer</title>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
</head>
<body>
<!-- --->
<!-- Entête de la page web --->
<!-- --->
<?php
//--> supression des images de la galerie
if (isset($_POST['supprimer']))
{
$fichier = $_POST['erase'];
if (($fichier != ".") && ($fichier != "..")) {
echo "effacer :".$fichier."<br>"; // verification.
//Planté du décors
$dir = "gallerie/"; // Dossier de la galerie
$xml = $dir."gallery.xml"; // et nom du fichier xml à chercher
$file=explode ("/", $fichier);
$fichier_name = $file[5]; // On récupère le nom du fichier à retirer en le débarassant de son chemin complet.
$vignette = $dir."thumbs/".$fichier_name;
$dir_thumbs = $dir."thumbs/";
$image = $dir."images/".$fichier_name;
// Effacer l'image et la vignette
if (unlink($vignette) and unlink($image)) {
// Entete et pied du nouvel xml
$entete_xml = '<?xml version="1.0" encoding="UTF-8"?>'.chr(13);
$entete_xml .= '<simpleviewerGallery maxImageWidth="480" maxImageHeight="400" textColor="0x181818" frameColor="0x555555" frameWidth="0" stagePadding="00" thumbnailColumns="1" thumbnailRows="4" navPosition="left" title="" enableRightClickOpen="false" backgroundImagePath="" imagePath="" thumbPath="">'.chr(13);
$foot_xml = '</simpleviewerGallery>';
$docu=0;
$listfiles = array();
$filesext = array('jpg','jpeg','png','gif');
if (substr($dir_thumbs, -1, 1) !== '/') $dir_thumbs .= '/'; // On vérifie que le dernier caractère de la chaîne "$dir" soit un "/" sinon on en ajoute un.
if (is_dir($dir_thumbs) AND ($dh = opendir($dir_thumbs)) !== FALSE) {
// On vérifie que la variable "$dir" indique un dossier et on l'ouvre dans la variable "$dh".
while (($file = readdir($dh)) !== FALSE) { // On lit chaques fichiers.
$temp = explode('.', $file); // recherche des extensions
for($t=0;$t<sizeof($filesext);$t++) // tant que $t est inferieur au nombre d'éléments du tableau des extensions.
{
if (strtolower(end($temp)) === $filesext[$t]) {
$listfiles[$docu] = $file;
$docu++;
}
}
}
closedir($dh); // Quand le dossier a été lu, on le referme.
sort($listfiles); // On trie les fichiers par leur clés.
$temp = array_keys($listfiles); // On place la liste des fichiers trouvé dans une variable temp.
if ($docu > 0){
// On trouvé au moins 1 fichier correspondant à la recherche.
$i = -1;
$ligne="";
while (isset($temp[++$i]))
{
$ligne .= "<image> \n";
$ligne .= "<filename>".$listfiles[$temp[$i]]."</filename> \n";
$ligne .= "<caption></caption> \n";
$ligne .="</image> \n";
}
$page = $entete_xml.$ligne.$foot_xml; // Le nouveau fichier xml
$page = nl2br($page);
$page = str_replace('<br />','',$page);
if (!$fp = fopen($xml,"w")) {
echo "Echec de l'ouverture du fichier";
}
else {
fseek($fp,0);
fputs($fp,$page);
fclose($fp);
}
}
else
{
echo '<table align=center width="95%"><tr>
<td valign=top align=center>Le dossier des images est vide.';
echo '</td></tr></table>';
}
}
else
{
echo '<table align=center width="95%"><tr>
<td valign=top align=center>Le dossier des images n\'est ps valide.';
echo '</td></tr></table>';
}
}
else {
echo '<table align=center width="95%"><tr><td valign=top align=center>Erreur fichier.';
echo '</td></tr></table>';
}
}
}
switch($action_Acces) {
case "Valider" :
$file_types_array = array('jpg','jpeg','gif','png'); // extensions acceptés.
$taille_ko = (1024*1024)*$numMo; // poids maxi fichier ici 1mo multiplié par $numMo.
$origfilename = $_FILES['userfile']['name']; // Nom du fichier sur le disque utilisateur
$taille = $_FILES['userfile']['size']; // taille du fichier
$dir_vignette="../../job/gallerie/thumbs/";
$dir ="../../job/gallerie/images/";
// On retire les caractères inerdits pour un fichier.
$origfilename = strtr($origfilename,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$origfilename = preg_replace('/([^.a-z0-9]+)/i', '', $origfilename);
if ($taille <= $taille_ko){
$temp = explode('.', $origfilename); // On "explose" le nom du fichier pour chaques "." trouvés.
$file_ext = false;
$ext= end($temp);
for($i=0;$i<sizeof($file_types_array);$i++) // tant que $i est inferieur au nombre d'éléments du tableau...
{
if (strtolower($ext) === $file_types_array[$i]) {
$file_ext = true;
}
}
if ($file_ext == true) {
if (!copy($userfile, $dir."$origfilename")) {
print("<br>Probleme de transfert !<br>");
}
else {
$dimension = getimagesize($dir.$origfilename);
$Wsrc = $dimension[0];
$Hsrc = $dimension[1];
// ---> Création vignette
if ($Wsrc > $Hsrc){
$W=100;
$H=round(100*($Hsrc/$Wsrc));
}
else {
$H=100;
$W=round(100*($Wsrc/$Hsrc));
}
$img_big = imagecreatefromjpeg($dir.$origfilename); # On ouvre l'image d'origine
$img_new = imagecreatetruecolor($W, $H);
# création de la miniature
$img_mini = imagecreatetruecolor($W, $H);
// copie de l'image, avec le redimensionnement.
imagecopyresized($img_mini,$img_big,0,0,0,0,$W,$H,$dimension[0],$dimension[1]);
imagejpeg($img_mini,$dir_vignette.$origfilename );
// modif du fichier xml par ajout d'une série de ligne.
$dir_xml = "../../job/gallerie/";
$Fichier = $dir_xml."gallery.xml";
$ajout = "<image> \n";
$ajout .= "<filename>".$origfilename."</filename> \n";
$ajout .= "<caption></caption> \n";
$ajout .="</image> \n";
$ajout .="</simpleviewerGallery> \n";
if (is_file($Fichier)) {
if (!$fp = fopen($Fichier,"r+")) {
echo "Echec de l'ouverture du fichier";
}
else {
if ($TabFich = file($Fichier)) {
for($i = 0; $i < count($TabFich)-1; $i++)
$page .= $TabFich[$i];
}
}
$page = $page.$ajout;
fseek($fp,0);
fputs($fp,$page);
fclose($fp);
}
else {
echo "erreur lecture fichier xml!";
}
echo "<font color=green face=arial>L'image a été enregistrée !</font>";
}
} else {
echo "extension non reconnue";
}
} else {
echo "Le fichier est trop volumineux";
}
default: // FORMULAIRE D UPLOAD
echo '<table width="95%" border="0" align="left" bgcolor="#BEB69F" style="margin-top:8px;border:1px solid green;">';
echo "<tr><th colspan=2 ><font face='arial' color='black'> Upload d'images<br>(maxi: $numMo mo)<br></font></th></tr>";
print("<FORM ENCTYPE=\"multipart/form-data\" ACTION=\"upload.php\" METHOD=\"post\">");
// Chassis
echo "<tr><td colspan=2 align=center>";
print("<INPUT NAME=\"userfile\" TYPE=\"file\" value=\"$userfile\" size=\"40\">");
?>
</td></tr><tr><th colspan=2>
<INPUT TYPE="submit" NAME="action_Acces" VALUE="Valider">
</form></th></tr>
<?php
echo '</td></tr>';
echo '</table>';
}
?>
<div id="dessous" style="margin-top:3px; clear:both;"></div>
<?php
// TABLEAU DES IMAGES PRESENTES DANS LA GALLERIE. APPEL DE LA FONCTION ScanThumbs ("dossier des vignettes")
echo '<table cellspacing=1 cellpadding=0 width="95%" align=left" style="border:1px solid orange;">';
echo '<tr><td valign=top>';
ScanThumbs("gallerie/thumbs/");
echo '</td></tr>';
echo '<tr height="4px"><td></td></tr>';
echo '</table>';
echo '<div id="dessous" style="clear:both;"></div>';
?>
<!-- --->
<!-- Pied de la page web --->
<!-- --->
</body>
</html>
Voilà,
bonne journée,
Fred
Bonjour,
Chose promise, chose dûe, je suis de retour avec mes scripts, qui fonctionnent.
Simpleviewer permet d'avoir simplement et rapidement une Galerie d'images sur son espace web. Vous pouvez le téléchoper gratuitement à cette adresse:
[url=http://simpleviewer.net/simpleviewer/]simpleviewer[/url]
Pour en savoir plus sur son uilisation, je vous propose d'aller voir par ici:
[url=http://www.siteduzero.com/tutoriel-3-72992-utiliser-un-simple-viewer-pour-son-site.html]tutorial[/url]
Pour ma femme j'ai fait un site avec une telle galerie. Il met alors venue l'idée de lui simplifier la tâche et d'eviter l'emploi d'un logiciel ftp ou encore de passer par photoshop pour modifier la dite galerie, et de lui permettre de gérer tout ça depuis un espace privé de son site.
Il est donc possible d'ajouter et de retirer des images une par une de la galerie. Pour celà, le script utilise deux techniques différentes, suivant que l'on veuille ajouter ou supprimer une image. Dans le premier cas, il ajoute les lignes ad-hoc à la playlist xml, et dans le second cas il reconstruit une playlist à partir des images restantes dans le dossier thumbs.
Le script construit également la vignette en tenant compte du format portrait ou paysage de l'image et conserve les proportions. Au moment de l'upload, les caractères interdits, espaces et autres sont retirés et remplacés.
L'ensemble comprend deux fichiers php, le premier est celui qui contient la fonction de scan des images présentes dans la galerie web. Cette fonction affiche sous forme d'un tableau les vignettes contenues dans le dossier thumbs. Chaque vingette est representé avec un bouton en X en dessous pour la supprimer. Le nombres de colonnes est modulable.
Quelques reflexions:
* On pourrait modifier le script pour reconstruire la playlist en fonction des dates de transfert des images sur le site pour conserver une chronologie.
* on pourrait aussi utiliser la technique de reconstruction de l'xml pour ajouer des images, cette fois aprés upload de l'image.
* Ici, j'ai fait au plus simple. Il n'y avait pas besoin de titre pour les images, j'ai laissé vide. Une solution simple pour donner un titre aux images serait de leur donner le même nom de fichier et d'en retirer l'extension. Exemple: Anniversaire_Cloe_2010.jpg --> Anniversaire_Cloe_2010
Si on veut aller plus loin dans ce domaine, il faudra envisager une BDD ou encore de passer par un fichier CSV.
* L'entête xml utilisé pour la reconstruction du fichier est celle que j'uilise pour ce site. Modifiez là suivant votre galerie.
Le script fonction.php
[php]
<?php
// Fred Simian
// Module Fonctions pour gallerie simpleviewer
// 2010
//
function ScanThumbs($dir){
$docu=0;
$listfiles = array();
$filesext = array('jpg','jpeg','png','gif',); // exensions permises
if (substr($dir, -1, 1) !== '/') $dir .= '/'; // On vérifie que le dernier caractère de la chaîne "$dir" soit un "/" sinon on en ajoute un.
if (is_dir($dir) AND ($dh = opendir($dir)) !== FALSE) { // On vérifie que la variable "$dir" indique un dossier et on l'ouvre dans la variable "$dh".
while (($file = readdir($dh)) !== FALSE) { // On lit chaques fichiers.
$temp = explode('.', $file);
for($t=0;$t<sizeof($filesext);$t++) // tant que $t est inferieur au nombre d'éléments du tableau...
{
if (strtolower(end($temp)) === $filesext[$t]) {
$listfiles[$docu] = $file;
$docu++;
}
}
}
if (strtolower(end($temp)) === "pdf"){ $cible="_blank";} else { $cible="";}
closedir($dh); // Quand le dossier a été lu, on le referme.
sort($listfiles); // On trie les fichiers par leur clés.
$temp = array_keys($listfiles);
if ($docu > 0){
$i = -1;
$Ncpt=0;
echo '<table align=center>';
while (isset($temp[++$i]))
{
if ($Ncpt==0){echo '<tr>';}
echo '<td align=center>';
echo "<form action='upload.php' method='post'>";
echo '<img src="',$dir,$listfiles[$temp[$i]],'" >';
echo '<br><input type="hidden" name="erase" value="'.$dir.$listfiles[$temp[$i]].'">
<input type="hidden" name="alone" value="'.$listfiles[$temp[$i]].'">
<input type="submit" name="supprimer" value="X"> ';
echo '</form>';
echo '</td>';
$Ncpt++;
if ($Ncpt>4) { // Modifier le chiffre ici pour adaper le nombres de colonnes à votre largeur de page.
$Ncpt=0;
echo '</tr>';
}
}
echo '</table>';
}
else
{
echo '<table align=center width="95%"><tr>
<td valign=top align=center>Le dossier des images est vide.';
echo '</td>
</tr></table>';
}
}
else
{
echo '<table align=center width="95%"><tr>
<td valign=top align=center>Le dossier des images est vide.';
echo '</td>
</tr></table>';
}
}
?>
[/php]
Le script upload.php (gestion de la galerie)
[php]
<?php
// Fred. Simian
// Gestion d'une galerie d'image Simpleviewer
// en PHP
// 2010
// Compatible Hebergement Free
include ("fonction.php");
$numMo = 1; // Nombre de Mo autorisé par image pour le Upload.
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Tes Simpleviewer</title>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
</head>
<body>
<!-- --->
<!-- Entête de la page web --->
<!-- --->
<?php
//--> supression des images de la galerie
if (isset($_POST['supprimer']))
{
$fichier = $_POST['erase'];
if (($fichier != ".") && ($fichier != "..")) {
echo "effacer :".$fichier."<br>"; // verification.
//Planté du décors
$dir = "gallerie/"; // Dossier de la galerie
$xml = $dir."gallery.xml"; // et nom du fichier xml à chercher
$file=explode ("/", $fichier);
$fichier_name = $file[5]; // On récupère le nom du fichier à retirer en le débarassant de son chemin complet.
$vignette = $dir."thumbs/".$fichier_name;
$dir_thumbs = $dir."thumbs/";
$image = $dir."images/".$fichier_name;
// Effacer l'image et la vignette
if (unlink($vignette) and unlink($image)) {
// Entete et pied du nouvel xml
$entete_xml = '<?xml version="1.0" encoding="UTF-8"?>'.chr(13);
$entete_xml .= '<simpleviewerGallery maxImageWidth="480" maxImageHeight="400" textColor="0x181818" frameColor="0x555555" frameWidth="0" stagePadding="00" thumbnailColumns="1" thumbnailRows="4" navPosition="left" title="" enableRightClickOpen="false" backgroundImagePath="" imagePath="" thumbPath="">'.chr(13);
$foot_xml = '</simpleviewerGallery>';
$docu=0;
$listfiles = array();
$filesext = array('jpg','jpeg','png','gif');
if (substr($dir_thumbs, -1, 1) !== '/') $dir_thumbs .= '/'; // On vérifie que le dernier caractère de la chaîne "$dir" soit un "/" sinon on en ajoute un.
if (is_dir($dir_thumbs) AND ($dh = opendir($dir_thumbs)) !== FALSE) {
// On vérifie que la variable "$dir" indique un dossier et on l'ouvre dans la variable "$dh".
while (($file = readdir($dh)) !== FALSE) { // On lit chaques fichiers.
$temp = explode('.', $file); // recherche des extensions
for($t=0;$t<sizeof($filesext);$t++) // tant que $t est inferieur au nombre d'éléments du tableau des extensions.
{
if (strtolower(end($temp)) === $filesext[$t]) {
$listfiles[$docu] = $file;
$docu++;
}
}
}
closedir($dh); // Quand le dossier a été lu, on le referme.
sort($listfiles); // On trie les fichiers par leur clés.
$temp = array_keys($listfiles); // On place la liste des fichiers trouvé dans une variable temp.
if ($docu > 0){
// On trouvé au moins 1 fichier correspondant à la recherche.
$i = -1;
$ligne="";
while (isset($temp[++$i]))
{
$ligne .= "<image> \n";
$ligne .= "<filename>".$listfiles[$temp[$i]]."</filename> \n";
$ligne .= "<caption></caption> \n";
$ligne .="</image> \n";
}
$page = $entete_xml.$ligne.$foot_xml; // Le nouveau fichier xml
$page = nl2br($page);
$page = str_replace('<br />','',$page);
if (!$fp = fopen($xml,"w")) {
echo "Echec de l'ouverture du fichier";
}
else {
fseek($fp,0);
fputs($fp,$page);
fclose($fp);
}
}
else
{
echo '<table align=center width="95%"><tr>
<td valign=top align=center>Le dossier des images est vide.';
echo '</td></tr></table>';
}
}
else
{
echo '<table align=center width="95%"><tr>
<td valign=top align=center>Le dossier des images n\'est ps valide.';
echo '</td></tr></table>';
}
}
else {
echo '<table align=center width="95%"><tr><td valign=top align=center>Erreur fichier.';
echo '</td></tr></table>';
}
}
}
switch($action_Acces) {
case "Valider" :
$file_types_array = array('jpg','jpeg','gif','png'); // extensions acceptés.
$taille_ko = (1024*1024)*$numMo; // poids maxi fichier ici 1mo multiplié par $numMo.
$origfilename = $_FILES['userfile']['name']; // Nom du fichier sur le disque utilisateur
$taille = $_FILES['userfile']['size']; // taille du fichier
$dir_vignette="../../job/gallerie/thumbs/";
$dir ="../../job/gallerie/images/";
// On retire les caractères inerdits pour un fichier.
$origfilename = strtr($origfilename,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$origfilename = preg_replace('/([^.a-z0-9]+)/i', '', $origfilename);
if ($taille <= $taille_ko){
$temp = explode('.', $origfilename); // On "explose" le nom du fichier pour chaques "." trouvés.
$file_ext = false;
$ext= end($temp);
for($i=0;$i<sizeof($file_types_array);$i++) // tant que $i est inferieur au nombre d'éléments du tableau...
{
if (strtolower($ext) === $file_types_array[$i]) {
$file_ext = true;
}
}
if ($file_ext == true) {
if (!copy($userfile, $dir."$origfilename")) {
print("<br>Probleme de transfert !<br>");
}
else {
$dimension = getimagesize($dir.$origfilename);
$Wsrc = $dimension[0];
$Hsrc = $dimension[1];
// ---> Création vignette
if ($Wsrc > $Hsrc){
$W=100;
$H=round(100*($Hsrc/$Wsrc));
}
else {
$H=100;
$W=round(100*($Wsrc/$Hsrc));
}
$img_big = imagecreatefromjpeg($dir.$origfilename); # On ouvre l'image d'origine
$img_new = imagecreatetruecolor($W, $H);
# création de la miniature
$img_mini = imagecreatetruecolor($W, $H);
// copie de l'image, avec le redimensionnement.
imagecopyresized($img_mini,$img_big,0,0,0,0,$W,$H,$dimension[0],$dimension[1]);
imagejpeg($img_mini,$dir_vignette.$origfilename );
// modif du fichier xml par ajout d'une série de ligne.
$dir_xml = "../../job/gallerie/";
$Fichier = $dir_xml."gallery.xml";
$ajout = "<image> \n";
$ajout .= "<filename>".$origfilename."</filename> \n";
$ajout .= "<caption></caption> \n";
$ajout .="</image> \n";
$ajout .="</simpleviewerGallery> \n";
if (is_file($Fichier)) {
if (!$fp = fopen($Fichier,"r+")) {
echo "Echec de l'ouverture du fichier";
}
else {
if ($TabFich = file($Fichier)) {
for($i = 0; $i < count($TabFich)-1; $i++)
$page .= $TabFich[$i];
}
}
$page = $page.$ajout;
fseek($fp,0);
fputs($fp,$page);
fclose($fp);
}
else {
echo "erreur lecture fichier xml!";
}
echo "<font color=green face=arial>L'image a été enregistrée !</font>";
}
} else {
echo "extension non reconnue";
}
} else {
echo "Le fichier est trop volumineux";
}
default: // FORMULAIRE D UPLOAD
echo '<table width="95%" border="0" align="left" bgcolor="#BEB69F" style="margin-top:8px;border:1px solid green;">';
echo "<tr><th colspan=2 ><font face='arial' color='black'> Upload d'images<br>(maxi: $numMo mo)<br></font></th></tr>";
print("<FORM ENCTYPE=\"multipart/form-data\" ACTION=\"upload.php\" METHOD=\"post\">");
// Chassis
echo "<tr><td colspan=2 align=center>";
print("<INPUT NAME=\"userfile\" TYPE=\"file\" value=\"$userfile\" size=\"40\">");
?>
</td></tr><tr><th colspan=2>
<INPUT TYPE="submit" NAME="action_Acces" VALUE="Valider">
</form></th></tr>
<?php
echo '</td></tr>';
echo '</table>';
}
?>
<div id="dessous" style="margin-top:3px; clear:both;"></div>
<?php
// TABLEAU DES IMAGES PRESENTES DANS LA GALLERIE. APPEL DE LA FONCTION ScanThumbs ("dossier des vignettes")
echo '<table cellspacing=1 cellpadding=0 width="95%" align=left" style="border:1px solid orange;">';
echo '<tr><td valign=top>';
ScanThumbs("gallerie/thumbs/");
echo '</td></tr>';
echo '<tr height="4px"><td></td></tr>';
echo '</table>';
echo '<div id="dessous" style="clear:both;"></div>';
?>
<!-- --->
<!-- Pied de la page web --->
<!-- --->
</body>
</html>
[/php]
Voilà,
bonne journée,
Fred