PHP Redimensionner une image avant de le stocker dans la base

Lerod
Invité n'ayant pas de compte PHPfrance

24 sept. 2015, 12:04

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

Mammouth du PHP | 2703 Messages

24 sept. 2015, 13:40

voir ce que contient $tmp_filepath et corriger si c'est inadéquat.