Maxo
Invité n'ayant pas de compte PHPfrance
23 févr. 2012, 13:52
Bonjour,
j'ai un probleme dans le meme genre, par contre c'est l'upload qui ne marche pas très bien.
je post une variable TARGETID qui contient le répertoire à créer et ensuite je veux uploader l'image dans ce dossier.
le probleme c'est que j'ai constaté que var_dump($_FILES) est null malgré qu'il fait bien l'upload à la fin sauf qu'il le fait dans la racine dans le répertoire est créée mais reste vide.
je poste la variable en ajax.
quelqu'un peut m'aider !!
<?php
/************************************************************
* Resize Image *
***********************************************************/
function resizeImg($x,$y,$size,$file)
{
if ($size)
{
if ($size['mime']=='image/jpeg' )
{
$img_big = imagecreatefromjpeg($file); # On ouvre l'image d'origine
$img_new = imagecreate($x, $y);
# création de la miniature
$img_mini = imagecreatetruecolor($x, $y)
or $img_mini = imagecreate($x, $y);
// copie de l'image, avec le redimensionnement.
imagecopyresized($img_mini,$img_big,0,0,0,0,$x,$y,$size[0],$size[1]);
imagejpeg($img_mini,$file );
}elseif ($size['mime']=='image/png')
{
$img_big = imagecreatefrompng($file); # On ouvre l'image d'origine
$img_new = imagecreate($x, $y);
# création de la miniature
$img_mini = imagecreatetruecolor($x, $y)
or $img_mini = imagecreate($x, $y);
// copie de l'image, avec le redimensionnement.
imagecopyresized($img_mini,$img_big,0,0,0,0,$x,$y,$size[0],$size[1]);
imagepng($img_mini,$file );
}elseif ($size['mime']=='image/gif')
{
$img_big = imagecreatefromgif($file); # On ouvre l'image d'origine
$img_new = imagecreate($x, $y);
# création de la miniature
$img_mini = imagecreatetruecolor($x, $y)
or $img_mini = imagecreate($x, $y);
// copie de l'image, avec le redimensionnement.
imagecopyresized($img_mini,$img_big,0,0,0,0,$x,$y,$size[0],$size[1]);
imagegif($img_mini,$file );
}
}
}
/************************************************************
* Recuperation des variables + Constantes *
***********************************************************/
//if(isset ($_POST['TargetID']) && $_POST['TargetID'] != "")
//{
$iId = $_POST['TargetID'];
define('TARGET', '../Annonces/'.$iId); // Repertoire cible
define('MAX_SIZE', 10000000); // Taille max en octets du ImgFile
define('WIDTH_MAX', 80000); // Largeur max de l'image en pixels
define('HEIGHT_MAX', 80000); // Hauteur max de l'image en pixels
//} else {
// $message = 'Internal Error When Uploading';
//}
// Tableaux de donnees
$tabExt = array('jpg','gif','png','jpeg');// Extensions autorisees
$infosImg = array();
// Variables
$extension = '';
$message = '';
$ImgName = '';
$iCounter = 0;
/************************************************************
* 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 *
************************************************************/
try
{
// On verifie si le champ est rempli
if(isset($_FILES['ImgFile']['name']))
{
// Recuperation de l'extension du ImgFile
$extension = pathinfo($_FILES['ImgFile']['name'], PATHINFO_EXTENSION);
// On verifie l'extension du ImgFile
if(in_array(strtolower($extension),$tabExt))
{
// On recupere les dimensions du ImgFile
$infosImg = getimagesize($_FILES['ImgFile']['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['ImgFile']['tmp_name']) <= MAX_SIZE))
{
// Parcours du tableau d'erreurs
if(isset($_FILES['ImgFile']['error']) && UPLOAD_ERR_OK === $_FILES['ImgFile']['error'])
{
// On renomme le ImgFile
$iId = "1234988";
$ImgName = $iId.'.'. $extension;
$Count = '123456.'. $extension;
$uploadfile = TARGET."/".$ImgName;
if (is_dir(TARGET))
{
$folder = opendir(TARGET);
{
// Ceci est la façon correcte de traverser un dossier.
while (false !== ($file = readdir($folder)))
{
if ($file != "." && $file != "..")
{
$iCounter++;
}
}
// if($iCounter < 5)
// {
// Si c'est OK, on teste l'upload
if(move_uploaded_file($_FILES['ImgFile']['tmp_name'], $uploadfile))
{
$message = 'Uploaded Succefully !';
}
else
{
// Sinon on affiche une erreur systeme
$message = 'Error When Uploading !';
}
// }
closedir($folder);
}
}
$file = $uploadfile ; # L'emplacement de l'image à redimensionner. L'image peut être de type jpeg, gif ou png
$size = getimagesize($file);
$x = $size[0];
$y = $size[1]; # Taille en pixel de l'image redimensionnée
$Ratio = $x/$y;
if ($y > 298)
{
$y = 298;
$x = $y * $Ratio;
resizeImg($x, $y, $size,$file);
}else if($x > 550)
{
$x = 550;
$y = $x / $Ratio;
resizeImg($x, $y, $size,$file);
}
}
else
{
$message = 'Internal Error When Uploading';
}
}
else
{
// Sinon erreur sur les dimensions et taille de l'image
$message = 'Error in the image dimensions !';
}
}
else
{
// Sinon erreur sur le type de l'image
$message = 'The uploaded file is not an image !';
}
}
else
{
// Sinon on affiche une erreur pour l'extension
$message = 'The extension of the image is not supported !';
}
}
else
{
// Sinon on affiche une erreur pour le champ vide
$message = 'Please fill the form !';
}
}
catch (Exception $ex)
{
echo $ex->getMessage();
}
// echo $iCounter;
?>