PHP Redimensionner une image avant de le stocker dans la base
Posté : 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
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