Problême avec la taille des photo upload!

Bonjour,

j'ai un probleme avec ce script, il me fait des miniature mais le problême c'est quelle ne fond pas toute la même taille!

voyez par vous même!

http://www.uncupidon.fr

merci d'avance de vaut reponses!

voici le script en question:

<?php
session_start();
$_SESSION['pseudo']

?>

<?php

include('mapageperso.php');

if(isset($_FILES['photo2']))
{

// params
unset($erreur);
$extensions_ok = array('png', 'gif', 'jpg', 'jpeg', 'PNG', 'GIF', 'JPG', 'JPEG',);
$taille_max = 1000000;

// vérifications
if( !in_array( substr(strrchr($_FILES['photo2']['name'], '.'), 1), $extensions_ok ) )
{
$erreur = 'Veuillez sélectionner un fichier de type png, gif ou jpg !';
}
elseif( file_exists($_FILES['photo2']['tmp_name'])
and filesize($_FILES['photo2']['tmp_size']) > $taille_max)
{
$erreur = 'Votre fichier doit faire moins de 1Mo !';
}
$extension = strrchr($_FILES['photo2']['name'], '.');
// copie du fichier
if(!isset($erreur))
{
$dest_fichier = time();

$dest_dossier = 'images/';

// copie du fichier
move_uploaded_file($_FILES['photo2']['tmp_name'], $dest_dossier . $dest_fichier . $extension);
echo 'Fichier uploadé avec succès!';

$limite = 250;

$size = getimagesize($dest_dossier.$dest_fichier.$extension);
$hauteur = $size[1];
$largeur = $size[0];

if($hauteur >= $limite OR $largeur >= $limite)
{

$source = imagecreatefromjpeg($dest_dossier.$dest_fichier.$extension); // L'image est la source

if($hauteur >= $limite AND $hauteur >> $largeur) // Calcule des dimensions miniatures
{

$hauteur = $hauteur / ($largeur / $limite); // Calcule de la hauteur miniature
$largeur = $limite;

}
else
{

$largeur = $largeur / ($hauteur / $limite); // Calcule de la largeur miniature
$hauteur = $limite;

}

$destination = imagecreatetruecolor($largeur, $hauteur); // On crée la miniature vide

$largeur_source = imagesx($source); // Largeur de la source
$hauteur_source = imagesy($source); // Hauteur de la source
$largeur_destination = imagesx($destination); // Largeur de la miniature
$hauteur_destination = imagesy($destination); // Hauteur de la miniature

// Notez bien que l'on n'est pas obligé de faire ces calculs, car on les a déjà fait. Moi je préfère, pour plus de sureté

$nomMiniature1 = 'moyensmall_'.$dest_fichier.$extension; // Nom de la miniature

imagecopyresampled($destination, $source, 0, 0, 0, 0, $largeur_destination, $hauteur_destination, $largeur_source, $hauteur_source); // Création de la
imagejpeg($destination, $dest_dossier.$nomMiniature1); // miniature

// D'abord, on se connecte à MySQL
mysql_connect('db235.1and1.fr', 'dbo239484070', 'twTXkwsH');
mysql_select_db('dbo239484070');

$pseudo = $_SESSION['pseudo'];
$photomoyenne = $nomMiniature1;

mysql_query('UPDATE infoclients SET photo1="'.$photomoyenne.'" WHERE pseudo="'.$pseudo.'"');

echo '<a href="'.$dest_dossier.$dest_fichier.$extension.'"><img src="'.$dest_dossier.$nomMiniature1.'" border="0"></a>';
}

$limite = 100;

$size = getimagesize($dest_dossier.$dest_fichier.$extension);
$hauteur = $size[1];
$largeur = $size[0];

if($hauteur >= $limite OR $largeur >= $limite)
{

$source = imagecreatefromjpeg($dest_dossier.$dest_fichier.$extension); // L'image est la source

if($hauteur >= $limite AND $hauteur >> $largeur) // Calcule des dimensions miniatures
{

$hauteur = $hauteur / ($largeur / $limite); // Calcule de la hauteur miniature
$largeur = $limite;

}
else
{

$largeur = $largeur / ($hauteur / $limite); // Calcule de la largeur miniature
$hauteur = $limite;

}

$destination = imagecreatetruecolor($largeur, $hauteur); // On crée la miniature vide

$largeur_source = imagesx($source); // Largeur de la source
$hauteur_source = imagesy($source); // Hauteur de la source
$largeur_destination = imagesx($destination); // Largeur de la miniature
$hauteur_destination = imagesy($destination); // Hauteur de la miniature

// Notez bien que l'on n'est pas obligé de faire ces calculs, car on les a déjà fait. Moi je préfère, pour plus de sureté

$nomMiniature = 'small_'.$dest_fichier.$extension; // Nom de la miniature

imagecopyresampled($destination, $source, 0, 0, 0, 0, $largeur_destination, $hauteur_destination, $largeur_source, $hauteur_source); // Création de la
imagejpeg($destination, $dest_dossier.$nomMiniature); // miniature

// D'abord, on se connecte à MySQL
mysql_connect('db235.1and1.fr', 'dbo239484070', 'twTXkwsH');
mysql_select_db('dbo239484070');

$pseudo = $_SESSION['pseudo'];
$photomini = $nomMiniature;

mysql_query('UPDATE infoclients SET photo2="'.$photomini.'" WHERE pseudo="'.$pseudo.'"');

}

}

}

?>

<html>
<body>
<!-- Erreur ? -->
<?php
if(isset($erreur))
{
echo '<p>', $erreur ,'</p>';
}
?>
<!-- Formulaire -->
<!-- Attention, ne de ne pas oublier le enctype="multipart/form-data" -->
<form method="POST" action="photo2222222.php" enctype="multipart/form-data">

<!-- Limiter la taille des fichiers à 500Ko -->

<input type="hidden" name="MAX_FILE_SIZE" value="1000000" />
photo 2
<!-- champs d'envoi de fichier, de type file -->
<input type="file" name="photo2" /><br/><br/>

<!-- bouton d'envoi -->
<input type="submit" name="envoi" value="Envoyer " />

</form>
</body>
</html>
Configuration: Windows XP
Internet Explorer 6.0

2 réponses

  1. Résolution des photos retouchent les avant avec un logiciel pour reduire ou augmenter leur résolution .

    ++
    0
    1. merci de ta reponse!

      mais, c'est les membres de mon site qui mettent les photo!

      je ne peu pas leur demander de retoucher les photo avant de les upload!
      0
    2. @micka30Bah tu mais une condition dans ton script php du genre la photo est adapté si elle fait 150x90 pixel. Sinon tu leur demande de mettre les photos a une certaine taille et si ils t'aiment bien ils le feront :)

      ++
      0
    3. @Aurelsicokore!
      il n y as pas une autre solution , qui ferais que mon script le fasse tout seul?
      0
    4. @micka30Bah si tu m'es une condition par contre demande à quelqu'un comment faire là je debutes dans le domaine:p

      Salut
      0
  2. TAILLE IDENTIQUE DES PHOTOS TRANSFÉRÉES

    Pour que les photos transférées soient toutes proportionnelles en taille, il ne faut pas comparer les largeurs et les hauteurs, mais la SURFACE.
    MadM@tt propose cette solution à la page suivante :

    https://codes-sources.commentcamarche.net/

    Cela fonctionne très bien.
    0