Affichage d une miniature apres chargement de l image par le visiteur

Signaler
Messages postés
2
Date d'inscription
lundi 22 janvier 2007
Statut
Membre
Dernière intervention
9 août 2012
-
Bonsoir a tous je me permet de vous demander de l aide car la je ne sait plus quoi faire je m explique : je travaille sur un code php permettant l upload de fichier, une fois que l image est chargé c est censé me afficher une miniature de l image probleme la miniature s affiche pas merci pour votre aide....

<?
//Cookies du pseudo
//*****************

$pseudo = htmlspecialchars(addslashes($_POST['pseudo']));

//Enregistre le pseudo actuel



//Lecture du pseudo
/*$cook_rep = $HTTP_COOKIE_VARS["cookie_rep"];
if(!isset($cook_rep))$cook_rep = "Anonyme";
if($pseudo "")$pseudo $cook_rep;*/
?><?php
//----------------------------
// DEFINITION DES VARIABLES
//----------------------------

//Pour les tester en local (avec EasyPHP,...)
$test_local = 0; //0 pour le web //N'effectue pas la réalocation de la mémoire du serveur
//et n'envoi pas de mail de confirmation

$extension = 'image/pjpeg'; // MIME JPEG pour la comparaisond de l'extention du fichier
$extension2 = 'image/jpeg'; // MIME JPEG pour la comparaisond de l'extention du fichier
$quality = 90; // Qualité de la compression JPEG
$kb_max = 70000; // Valeur max en octets de l'image finale
$max_size = 5000000; // Taille max en octets du fichier à uploader pour traitement
$largeurDestination = 500; // Largeur max de l'image finale en pixel
$nom_rep = "images_upload"; // Lien du répertoire des dossier photos à la raçine du script (fin sans /)
$site = "http://".$_SERVER["HTTP_HOST"]."/upload_avec_traitement_serveur/"; // Adresse du dossier où est installé le script (fin avec /)
$mail_notif = "visiocoquin@gmail.com"; // Adresse mail pour la notification
$mail_from = "From: info@mail.com"; // Adresse mail envoi

//---------------------------------------------
// DEFINITION DES VARIABLES LIEES AUX FICHIERS
//---------------------------------------------

$nom_file = $_FILES['fichier']['name'];
$taille = $_FILES['fichier']['size'];
$tmp = $_FILES['fichier']['tmp_name'];
$ext_img = $_FILES['fichier']['type'];
$lien_dossier = $nom_rep;
$nom_rep .= "/".strtolower($pseudo);
$verif_exist = $nom_rep;
$verif_exist .= "/";
$verif_exist .= $nom_file;

//----------------------
// SCRIPT D'UPLOAD
//----------------------

//Vérifie l'existance du dossier de réception
//*******************************************
if(!file_exists($lien_dossier))
{
//Crée le répertoire de classement des photos s'il n'existe pas
if(!mkdir($lien_dossier,0777))
{
echo "Impossible de créer le répertoire : ",$lien_dossier," --> upload interrompu!!!";
exit;
}
}

//Enlever les accents
//*******************
function enlever_accents($dest_fichier){
$dest_fichier = strtr($dest_fichier, 'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ/',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy/');
//remplacer les caracteres autres que lettres, chiffres et point par _
$dest_fichier = preg_replace('/([^.a-z\/0-9]+)/i', '_', $dest_fichier);
return $dest_fichier;
}

$nom_rep = enlever_accents($nom_rep);
$pseudo = enlever_accents($pseudo);
$verif_exist = enlever_accents($verif_exist);
$nom_file = enlever_accents($nom_file);

//Début de la procédure d'upload
//******************************
if(!empty($_POST['posted'])) {
// On vérifie si le champ est rempli
if(!empty($nom_file) && (!empty($pseudo))) {
//On vérifie que le nom du fichier n'existe pas
if(!file_exists($verif_exist)) {
// On vérifie l'extension du fichier
if(($ext_img $extension)||($ext_img $extension2)) {
// On récupère les dimensions du fichier
$infos_img = getimagesize($tmp);
// On vérifie la taille de l'image
if($taille <= $max_size) {
//Crée le répertoire avec le pseudo
if(!file_exists($nom_rep)){
mkdir($nom_rep,0755);
}
//upload du fichier
if(move_uploaded_file($tmp,$nom_rep."/".$nom_file)) {
// Si upload OK alors on affiche le message de réussite
chmod($verif_exist, 0666);
echo " Merci $pseudo!

";
echo 'Image uploadée avec succès !
';
echo '<hr />';
echo 'Détails de l\'image
';
echo 'Fichier : ', $nom_file , '
';
echo 'Taille : ' , $taille, ' Octets
';
echo 'Largeur : ', $infos_img[0], ' px
';
echo 'Hauteur : ', $infos_img[1], ' px
';
echo '<hr />';

//calcul et redimension
//*********************
$fichierSource = $nom_rep;
$fichierSource .= "/";
$fichierSource .= $nom_file;
$fichierSource = $fichierSource;
//hauteur / largeur
$rapport = $infos_img[1] / $infos_img[0];
//Dimension de sortie
$hauteurDestination = $largeurDestination * $rapport;

if($test_local == 0)
{
//Réaloue la mémoire dont le serveur à besoin
//*******************************************
$memoryNeeded = round(($infos_img[0] * $infos_img[1] * $infos_img['bits'] * $infos_img['channels'] / 8 + Pow(2, 16)) * 1.65);
$mem_in_use= memory_get_usage();
//echo "Mémoire utilisée : $memoryNeeded contre $mem_in_use

";
$test = (integer) ini_get('memory_limit') + ceil(((memory_get_usage() + $memoryNeeded) - (integer) ini_get('memory_limit') * pow(1024, 2)) / pow(1024, 2)) + 1;
//solution calculée
if(function_exists('memory_get_usage') && memory_get_usage() + $memoryNeeded > (integer) ini_get('memory_limit') * pow(1024, 2))
ini_set('memory_limit', (integer) ini_get('memory_limit') + ceil(((memory_get_usage() + $memoryNeeded) - (integer) ini_get('memory_limit') * pow(1024, 2)) / pow(1024, 2)) + 2 . 'M');
}

//Création de l'image
//*******************
$source = imagecreatefromjpeg($fichierSource);

$largeurSource = imagesx($source);
$hauteurSource = imagesy($source);

if($largeurSource > $largeurDestination){
$im = ImageCreateTrueColor ($largeurDestination, $hauteurDestination)
or die ("Erreur lors de la création de l'image");
}
else{
$im = ImageCreateTrueColor ($infos_img[0], $infos_img[1])
or die ("Erreur lors de la création de l'image");
$largeurDestination = $infos_img[0];
$hauteurDestination = $infos_img[1];
}

//Redimentionnement
//*****************
ImageCopyResampled($im, $source, 0, 0, 0, 0, $largeurDestination, $hauteurDestination, $largeurSource, $hauteurSource);

//Création du fichier de sortie
//*****************************
$fh=fopen($fichierSource,'w');
fclose($fh);
ImageJpeg ($im,$fichierSource,$quality);
$size_file = filesize($fichierSource);

//Test de la taille en kb de l'image définitive
//*********************************************
$size_file = filesize($fichierSource);
$iteration = 0;
while($size_file > $kb_max){
if($quality > 0)$quality -= 5;
else {$quality = "Erreur!!!"; break;}
unlink($fichierSource);
$fh=fopen($fichierSource,'w');
fclose($fh);
ImageJpeg ($im,$fichierSource,$quality);
$size_file = filesize($fichierSource);
$iteration++;
}

//Affiche le détail de l'image
echo 'Détails de l\'image finale sur le serveur
';
echo ' Fichier : ' , $nom_file, '
';
echo 'Taille : ' , $size_file, ' Octets
';
echo 'Qualité : ' , $quality, ' %
';
echo 'Largeur : ' , $largeurDestination, ' px
';
echo 'Hauteur : ' , $hauteurDestination, ' px
';
echo 'Itération de compression : ', $iteration, ' x
';
echo '<hr />';

$lien_image = $site.$nom_rep."/".$nom_file;
echo "L'image ci-dessous a été redimentionnée et chargée sur le serveur.
Un mail de notification a été envoyé aux webmasters

";
//echo "Lien de l'image : ".$lien_image."

";
echo "
";

if($test_local = = 0)
{
//Envoi du mail de notification
$message = "Lien de l'image
: ";
mail($mail_notif, "Nouvelle img uploadée de ".$pseudo,$message.$lien_image,$mail_from);
}

} else {
// Sinon on affiche une erreur système
echo 'ECHEC DE L\'ENVOI

Problème lors de l\'upload !

Erreur num : ', $_FILES['fichier']['error'], '

';
}
} else {
// Sinon on affiche une erreur pour les dimensions et taille de l'image
echo "La taille du fichier dépasse la taille maximale authorisée de $max_size octets!

";
}
} else {
// Sinon on affiche une erreur pour l'extension
echo 'ECHEC DE L\'ENVOI

Votre image ne comporte pas l\'extension .jpg !

';
}
} else {
//Sinon on demande de renommer
echo 'ECHEC DE L\'ENVOI

Une image avec le même nom existe déjà! Renommer la photo et réessayer, Merci.

';
}
} else {
// Sinon on affiche une erreur pour le champ vide
echo 'ECHEC DE L\'ENVOI

Aucune photo sélectionnée ou aucun pseudo entré!

';
}
}
?> <form enctype ="multipart/form-data" action= "<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
Envoyer le fichier :



Votre pseudo : " size ="20" >



Sélectionner la photo :



</form>