Problême avec la taille des photo upload!

micka30 Messages postés 102 Statut Membre -  
 Villa Flore -
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>
A voir également:

2 réponses

Aurelsicoko Messages postés 160 Statut Membre 4
 
Résolution des photos retouchent les avant avec un logiciel pour reduire ou augmenter leur résolution .

++
0
micka30 Messages postés 102 Statut Membre 5
 
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
Aurelsicoko Messages postés 160 Statut Membre 4 > micka30 Messages postés 102 Statut Membre
 
Bah 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
micka30 Messages postés 102 Statut Membre 5 > Aurelsicoko Messages postés 160 Statut Membre
 
re!
il n y as pas une autre solution , qui ferais que mon script le fasse tout seul?
0
Aurelsicoko Messages postés 160 Statut Membre 4 > micka30 Messages postés 102 Statut Membre
 
Bah si tu m'es une condition par contre demande à quelqu'un comment faire là je debutes dans le domaine:p

Salut
0
Villa Flore
 
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