Bonjour à tous,
Je demande votre aide, je suis bloqué!!
Je voudrai que l'image uploadé par un utilisateur (via un formulaire) soit reduite (sa taille et/ou sa qualité) avant de la stocker dans la base. J'ai déjà crée la fonction mais il y a encore d'erreurs.
Voici mon script:
<!--formulaire-->
<?php
if(isset($_POST['submit'])){
extract($_POST);
$nomArt = $_POST['nomAricle'];
$prixArt = $_POST['prixArticle'];
$descrArt = $_POST['descrArticle'];
$image1 = $_FILES["image1"]["name"];
$file_tmp_img1 = $_FILES["image1"]["tmp_name"];
$tmp_filepath = sys_get_temp_dir() . $_FILES['image1']['tmp_name'];
//création de la fonction de conversion
function convertImage($sources, $dest, $width, $height, $quality){
$imageSize = getimagesize($sources);
$imageRessource = imagecreatefromjpeg($sources);
$imageFinal = imagecreatetruecolor($width,$height);
$final = imagecopyresampled($imageFinal, $imageRessource, 0, 0, 0, 0, $width, $height, $imageSize[0], $imageSize[1]);
imagejpeg($imageFinal, $dest, $quality);
}
//appel de la fonction
convertImage($tmp_filepath, 'final/'.$_FILES['image1']['name'], '640', '480', '100');
}
?>
Voila ce qui se passe après:
L'image a bien été redimensionnée à taille 640*480 et stocké dans le dossier "final" MAIS il n'y a que de fond noir(.jpg).
Et voici quelques messages d'erreurs:
Warning: getimagesize: failed to open stream: Invalid argument
Warning: imagecreatefromjpeg: failed to open stream: Invalid argument
Warning: imagecopyresampled: failed to open stream: Invalid argument
Je souligne que cette fonction "convertImage" marche bien si on l'execute hors de formulaire comme :
convertImage ('original/monImage.jpg', 'final/monImage.jpg', '640', '480', '100');
//original est le dossier qui content l'image source
//final c'est pour la destination de l'image redimensionnée
...mais là, quelques choses manquent.
En attendant impatiemment votre reponses.
Merci. et bonne journée
Cordialement