le 07/05/2009 à 14:06
eduardocosta
Bonjour. voici mon premier message sur ce forum, j'espère que vous pourrez m'aider car je suis au bout du rouleau et j'ai les méninges sans dessus dessous... Pour faire court, je n'ai jamais utiliser la librairie GD, et j'essaie de m'y mettre pour faire un truc tout bête, mais je dois avouer que je cale là.... Je cherche à redimensionner une image lors d'un upload php pour qu'elle fasse maximum 600x400, meme si l'utilisateur insère un fichier de 3Mo de 2000x1000px.
Ci dessous mon code, je ne comprends pas pourquoi ça ne marche pas, merci d'avance à ceux qui pourront m'aider...
Ci dessous mon code, je ne comprends pas pourquoi ça ne marche pas, merci d'avance à ceux qui pourront m'aider...
<?
include("../connection.php");
$width_maxi = "600";
$height_maxi = "400";
$fichier = $_FILES ['fichier']['name'];
$tmp = $_FILES ['fichier']['tmp_name'];
$taille = $_FILES ['fichier']['size'];
$dimensions = getimagesize($tmp);
$nomid=$_POST['id'];
$Source = "../img/";
$Destination = "../img/";
copy($fichier, $Destination."img_".$fichier);
unlink($fichier);
$src1=imagecreatefromjpeg($Source."img_".$fichier);
$sql="INSERT INTO photos (img) VALUES ('$fichier')";
$resultat=mysql_query($sql);
if ($dimensions[0] > $width_maxi || $dimensions[1] > $height_maxi)
{
if($dimensions[0] <= $dimensions[1]) //image verticale
{
$coef = $width_maxi / $dimensions[1];
$new_width = $dimensions[0] * $coef;
$new_height = $dimensions[1] * $coef;
$im1 = ImageCreateTrueColor($dimensions[0], $dimensions[1]);
ImageCopyResampled($im1, $src1, 0, 0, 0, 0, $dimensions[0],$dimensions[1], $dimensions[0], $dimensions[1]);
}
else //image horizontale
{
if (($width_maxi / $dimensions[0]) < ($height_maxi / $dimensions[1]))
{
$coef = ($ratioL1 / $dimensions[0]);
$new_width = $dimensions[0] * $coef;
$new_height = $dimensions[1] * $coef;
$im1 = ImageCreateTrueColor($dimensions[0], $dimensions[1]);
ImageCopyResampled($im1, $src1, 0, 0, 0, 0, $dimensions[0],$dimensions[1], $dimensions[0], $dimensions[1]);
}
else
{
$coef = ($ratioH1 / $dimensions[1]);
$new_width = $dimensions[0] * $coef;
$new_height = $dimensions[1] * $coef;
$im1 = ImageCreateTrueColor($dimensions[0], $dimensions[1]);
ImageCopyResampled($im1, $src1, 0, 0, 0, 0, $dimensions[0],$dimensions[1], $dimensions[0], $dimensions[1]);
}
}
}
else
{
/* indiquer $dest_file qui correspond au répertoire de destination */
$dest_file="../img/".$fichier;
/* enlève un "\" */
$source_file=stripslashes($fichier);
/* copie du fichier */
//$res_copy=copy($source_file , $dest_file);
move_uploaded_file($_FILES['fichier']['tmp_name'],$dest_file);
chmod($dest_file, 0777);
}
?>
<body>
<div>INSERTION DE PHOTO</div>
<br />
taille recommandée : 600 pixels de large x 400 de haut
<form method="post" action="upload3.php" ENCTYPE="multipart/form-data">
<input name="fichier" type="file" id="fichier" size="20">
<br>
<input name="submit" type="Submit" value="VALIDER " border="0" onClick="submit">
</form>
</body>