Convertir une image jpg, bmp, gif en png dans un upload
Posté : 28 févr. 2012, 03:28
Bonjour,
J'ai un script d'upload qui affiche l'avatar de mes membres, mais si un membre envoi un fichier avec extension : .gif, .jpg, etc...
l'avatar ne s'affichera pas.
Je souhaiterais donc convertir cet avatar uploadé qui serais en .jpg en .png, je préfère des avatars en png
Est-ce possible avec la librairie GD ? et est-il possible de l'inclure dans le script de l'upload ?
Si oui, expliqué moi bien, parce que je sens que c'est compliqué ce machin là !
J'envois le script d'upload
J'ai un script d'upload qui affiche l'avatar de mes membres, mais si un membre envoi un fichier avec extension : .gif, .jpg, etc...
l'avatar ne s'affichera pas.
Je souhaiterais donc convertir cet avatar uploadé qui serais en .jpg en .png, je préfère des avatars en png
Est-ce possible avec la librairie GD ? et est-il possible de l'inclure dans le script de l'upload ?
Si oui, expliqué moi bien, parce que je sens que c'est compliqué ce machin là !
J'envois le script d'upload
<?php
session_start();
require("../config.php");
$sql = connect_sql();
$pseudo_membre = $_SESSION['pseudo'];
$requete = mysql_query("SELECT id FROM admin_communaute WHERE `pseudo`='$pseudo_membre'");
$result = mysql_fetch_array ($requete);
$id = $result['id'];
/************************************************************
* Definition des constantes / tableaux et variables *
************************************************************/
// Constantes
define('TARGET', 'upload/'); // Repertoire cible
define('MAX_SIZE', 100000); // Taille max en octets du fichier
define('WIDTH_MAX', 800); // Largeur max de l'image en pixels
define('HEIGHT_MAX', 800); // Hauteur max de l'image en pixels
// Tableaux de donnees
$tabExt = array('jpg','gif','png','jpeg'); // Extensions autorisees
$infosImg = array();
// Variables
$extension = '';
$message = '';
$nomImage = '';
/************************************************************
* Creation du repertoire cible si inexistant *
************************************************************/
if( !is_dir(TARGET) ) {
if( !mkdir(TARGET, 0755) ) {
exit('Erreur : le répertoire cible ne peut-être créé ! Vérifiez que vous diposiez des droits suffisants pour le faire ou créez le manuellement !');
}
}
/************************************************************
* Script d'upload *
************************************************************/
if(!empty($_POST)){
// On verifie si le champ est rempli
if( !empty($_FILES['fichier']['name']) )
{
// Recuperation de l'extension du fichier
$extension = pathinfo($_FILES['fichier']['name'], PATHINFO_EXTENSION);
// On verifie l'extension du fichier
if(in_array(strtolower($extension),$tabExt))
{
// On recupere les dimensions du fichier
$infosImg = getimagesize($_FILES['fichier']['tmp_name']);
// On verifie le type de l'image
if($infosImg[2] >= 1 && $infosImg[2] <= 14)
{
// On verifie les dimensions et taille de l'image
if(($infosImg[0] <= WIDTH_MAX) && ($infosImg[1] <= HEIGHT_MAX) && (filesize($_FILES['fichier']['tmp_name']) <= MAX_SIZE))
{
// Parcours du tableau d'erreurs
if(isset($_FILES['fichier']['error'])
&& UPLOAD_ERR_OK === $_FILES['fichier']['error'])
{
// On renomme le fichier
$nomImage = $id .'.'. $extension;
// Si c'est OK, on teste l'upload
if(move_uploaded_file($_FILES['fichier']['tmp_name'], TARGET.$nomImage))
{
header('Location: index.php');
}
else
{
// Sinon on affiche une erreur systeme
$message = 'Problème lors de l\'upload !';
}
}
else
{
$message = 'Une erreur interne a empêché l\'uplaod de l\'image';
}
}
else
{
// Sinon erreur sur les dimensions et taille de l'image
$message = 'Erreur dans les dimensions de l\'image !';
}
}
else
{
// Sinon erreur sur le type de l'image
$message = 'Le fichier à uploader n\'est pas une image !';
}
}
else
{
// Sinon on affiche une erreur pour l'extension
$message = 'L\'extension du fichier est incorrecte !';
}
}
else
{
// Sinon on affiche une erreur pour le champ vide
$message = 'Veuillez remplir le formulaire svp !';
}
}
?>
Merci par avance !