lupucide
lundi 18 avril 2005 à 12:48
Un petit up du thread. Je m'écarte un peu mais reste dans l'univers merveilleux de
getimagesize().
J'ai mon script déjà présenté plus haut, légèrement modifié pour accepter l'upload de GIF, JPG et PNG.
Je n'arrive pas à faire accepter autre chose que du PNG

CODE
// Test de la variable
if (isset($_POST['go']) == 'Envoyer') {
if (isset($_FILES['image']['tmp_name'])) {
$file = $_FILES['image']['tmp_name'];
list($width_orig, $height_orig, $type) = getimagesize($file);
// Vérification de l'extension
$tab = array(1, 2, 3);
foreach ($tab as $format);
if ($type != $format) {
header ('Location: ../?jpg');
exit();
}
else {
$newfile = clean_url($_FILES['image']['name']);
// Définition de la largeur et de la hauteur maximale
$width = 700;
$height = 420;
// Cacul des nouvelles dimensions
if ($width != $width_orig) {
$orig_width = $width;
}
if ($height != $height_orig) {
$orig_height = $height;
}
// Redimensionnement
$image_p = imagecreatetruecolor($width, $height);
if ($type == 1) {
$image = imagecreatefromgif($file);
}
if ($type == 2) {
$image = imagecreatefromjpeg($file);
}
if ($type == 3) {
$image = imagecreatefrompng($file);
}
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);
// Enregistrement du fichier
if (!imagejpeg($image_p, '../images/'.$newfile, 100)) {
header ('Location: ../?thumb');
exit();
}
// Enregistrement dans la BDD
$sql = _AT_mysql_connect($server, $login, $password);
if(!$sql) {
header ('Location: ../?bdd');
exit();
}
mysql_select_db($base, $sql);
$req = mysql_query('INSERT INTO images VALUES("", "'.date("Y-m-d H:i:s").'", "'.$newfile.'")');
mysql_close($sql);
header ('Location: ../?view&id='.$newfile);
exit();
}
}
}
Si quelqu'un arrive à m'aider, je lui fait un gros bisou

Je donne quand même la fonction clean_url(), au cas ou elle serait utile.
CODE
function clean_url($url) {
// Retire majuscules et espaces de début et fin
$url = strtolower(trim($url));
// Cherche un format non JPG et le remplace
$tab = array('gif', 'png');
foreach ($tab as $format);
$url = preg_replace('%'.$format.'%', 'jpg', $url);
// Remplace les caractères accentués
$url = strtr($url, 'àáâãäåçòóôõöøèéêëìíîïùúûüÿñ', 'aaaaaacooooooeeeeiiiiuuuuyn');
// Vire les caractères spéciaux
$url = preg_replace('%[^a-z]%', '', $url);
// Replace le . devant JPG
$url = preg_replace('%jpg%', '.jpg', $url);
return $url;
}
Merci.