Forum-webmaster
Technique - programmation => PHP / MySQL => Message commencé par: Flop le le 10-05-2006 a 13:57:38

Titre: Mon Upload d'image marche pas sous IE
Posté par: Flop le le 10-05-2006 a 13:57:38

Bonjour à vous !

j'utilise PHP4, pour Mysql je ne sais pas du tout ... mais pour l'instant ca tourne en local avec easy PHP 1.8.0.1
Comme di dans le sujet, je crée un script d'upload pour des images, sous firefox il marche parfaitement, sous IE il ne l'upload pas (par contre il enregistre bien toute les données dans la base de données dans les dernieres lignes de codes)
Y a t il des piege à éviter ?



Voila mon code


$fichierTemp = $_FILES['monFichier']['tmp_name'];
$fichierNom = $_FILES['monFichier']['name'];
$fichierType = $_FILES['monFichier']['type'];
$fichierErreur = $_FILES['monFichier']['error'];
$nomDestination = "../ImagesPost/".$fichierNom;

if ($fichierType=='image/gif'||$fichierType=='image/jpeg'||$fichierType=='image/png'||$fichierType=='image/jpg'||$fichierType=='image/JPG'||$fichierType=='image/JPEG')
{
if (!$fichierErreur)
{
if (is_uploaded_file($fichierTemp)AND!file_exists("../ImagesPost/".$fichierNom))
{
if(!move_uploaded_file($fichierTemp,$nomDestination))
{
echo ('impossible d\'enregister<br>');
}
else
{
$taille=getimagesize($nomDestination);
$source_image = imagecreatefromjpeg($nomDestination);
$pos_x=0;
$pos_y=0;
if ($taille[0]>=$taille[1])
{
$x = 205;
$y = (int)(($x*$taille[1])/$taille[0]);
$pos_y = (int)((205-$y)/2);
}
else
{
$y = 205;
$x = (int)(($y*$taille[0])/$taille[1]);
$pos_x = (int)((205-$x)/2);
}
$dest_image = imagecreatetruecolor(205,205);
$noir=imagecolorallocate($dest_image, 0, 0, 0);
imagecopyresampled($dest_image,$source_image, $pos_x,$pos_y,0,0,$x,$y,$taille[0] ,$taille[1]);
imagejpeg($dest_image,$nomDestination);
imagedestroy( $source_image);
imagedestroy( $dest_image);



}
}
else
{ }
}
else
{
echo ('désolé il y a eu une erreur <br>');
}

}

// On enregistre dans la BDD
mysql_query("INSERT INTO cri VALUES('', '" . $pseudo . "', '".$titre."', '" . $message . "','".$nomDestination."')");
}


Titre: Re:Mon Upload d'image marche pas sous IE
Posté par: Boozerdog le le 31-05-2006 a 01:24:03

Bonjour,

J'ai aussi pas mal galéré avant de résoudre ce soucis au début. Il se trouve qu'IE n'utilise pas le meme type MIME pour les JPG que les autres navigateurs. Pour cela rajoute un "||" dans ton premier if avec :

$fichierType=='image/pjpeg'

En esperant que cela fonctionnera mieux et bon courage

Titre: Re:Mon Upload d'image marche pas sous IE
Posté par: arnaudb le le 02-06-2006 a 15:51:39

Utilise ce script et met ton formulaire en "multipart/form-data"


Code:
$taille = 8;
$lettres = "abcdefghijklmnopqrstuvwxyz0123456789AZERTYUIOPMLKJHGFDSQWXCVBN";
for ($i=0;$i<$taille;$i++)
{
$idfichier=substr($lettres,(rand()%(strlen($lettres))),$taille);
}
if(isset($_FILES['photo']))
{
unset($erreur);
$extensions_ok = array('png', 'jpg', 'jpeg', 'JPG', 'JPEG', 'bmp');
$taille_max = 350000;
$dest_dossier = 'photo_annonce/';
if( !in_array( substr(strrchr($_FILES['photo']['name'], '.'), 1), $extensions_ok ))
{
echo "";
}
elseif( file_exists($_FILES['photo']['tmp_name']) && $_FILES['photo']['size']>$taille_max)
{
echo "Votre fichier doit faire moins de 350Ko !";
}
elseif(file_exists($_FILES['photo']['tmp_name']) && (!isset($erreur) || empty($erreur)) )
{
$dest_fichier = basename($_FILES['photo']['name']);
$dest_fichier = strtr($dest_fichier,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$dest_fichier = preg_replace('/([^.a-z0-9]+)/i', '_', $dest_fichier);
$dest_fichier = $nomfichier."_".$idfichier."_1_".$dest_fichier;
move_uploaded_file($_FILES['photo']['tmp_name'], $dest_dossier . $dest_fichier); }
}


Forum-webmaster | Actionné par YaBB SE
© 2001-2003, YaBB SE Dev Team. Tous droits réservés.