problème d'upload avec différent type de fichiers

alpking

Membre actif
13 Mai 2005
142
4
45
bonsoir,

j'ai fait ce code mais il ne m'accepte plus aucun type de fichier pour l'upload

<?php
//----------------------------
// DEFINITION DES VARIABLES
//----------------------------

$target = "image/"; // Repertoire cible
$extensions = array('.jpg', '.JPG' , 'jpeg', 'JPEG','.png','.PNG','.gif','.GIF');
$ext = strtolower(substr($fichier,'-4'));
$max_size = 100000; // Taille max en octets du fichier
$width_max = 600; // Largeur max de l'image en pixels
$height_max = 600; // Hauteur max de l'image en pixels

//---------------------------------------------
// DEFINITION DES VARIABLES LIEES AU FICHIER
//---------------------------------------------

$nom_file = $_FILES['fichier']['name'];
$taille = $_FILES['fichier']['size'];
$tmp = $_FILES['fichier']['tmp_name'];

//----------------------
// SCRIPT D'UPLOAD
//----------------------

if($_POST['posted']) {
// On vérifie si le champ est rempli
if($_FILES['fichier']['name']) {
// On vérifie l'extension du fichier
if (!in_array($ext, $extensions)) {
echo "L'extension du fichier n'est pas valide&nbsp;!\n";
exit();
}
else {
// On récupère les dimensions du fichier
$infos_img = getimagesize($_FILES['fichier']['tmp_name']);

// On vérifie les dimensions et taille de l'image

if(($infos_img[0] <= $width_max) && ($infos_img[1] <= $height_max) && ($_FILES['fichier']['size'] <= $max_size)){
// Si c'est OK, on teste l'upload
if(move_uploaded_file($_FILES['fichier']['tmp_name'],$target.$_FILES['fichier']['name'])) {
// Si upload OK alors on affiche le message de réussite
echo '<p align="center">';
echo '<font face="Verdana" size="2" color="#FF0000">';
echo '<b>Image uploadée avec succès !</b>';
echo '</font>';
echo '<hr>';
echo '<b>Adresse du fichier à copier dans la news : </b>',htmlspecialchars('<img src="http://www.alpkaida.com/upload/image/'.$_FILES['fichier']['name'].'">');
echo "</br>\n";
echo '<b>Taille :</b> '.$_FILES['fichier']['size'].' Octets</br>';
echo '<b>Largeur :</b> '.$infos_img[0].' px</br>';
echo '<b>Hauteur :</b> '.$infos_img[1].' px</br>';
echo '<hr>';
echo '<br><br>';
}
else {
// Sinon on affiche une erreur système
echo '<p align="center">';
echo '<font face="Verdana" size="2" color="#FF0000">';
echo '<b>Problème lors de l\'upload !</b><br><br><b>'.$_FILES['fichier']['error'].'</b>';
echo '</font><br><br>';
}
}
else {
// Sinon on affiche une erreur pour les dimensions et taille de l'image
echo '<p align="center">';
echo '<font face="Verdana" size="2" color="#FF0000">';
echo '<b>Problème dans les dimensions ou taille de l\'image !</b>';
echo '</font><br><br>';
}
}
}
else { //LIGNE 100
// Sinon on affiche une erreur pour le champ vide
echo '<p align="center">';
echo '<font face="Verdana" size="2" color="#FF0000">';
echo '<b>Le champ du formulaire est vide !</b>';
echo '</font><br><br>';
}
}
?>

quelqu'un a une idée pourqoi ?

merci d'avance
 
hummm pourquoi tu determine les extensions avec le . ca te fait faire un micmac ... si tu mets array('jpg','gif',...) et que tu fait un explode(".",$extensions) tu ne t'occupes pas du nombre de caract&#232;res...

sinon as-tu essay&#233; de d&#233;compos&#233; ton if(($infos_img[0] <= $width_max) && ($infos_img[1] <= $height_max) && ($_FILES['fichier']['size'] <= $max_size))