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>
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
-
Résolution des photos retouchent les avant avec un logiciel pour reduire ou augmenter leur résolution .
++-
-
@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 :)
++ -
@Aurelsicokore!
il n y as pas une autre solution , qui ferais que mon script le fasse tout seul? -
@micka30Bah si tu m'es une condition par contre demande à quelqu'un comment faire là je debutes dans le domaine:p
Salut
-
-
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.