Upload files php - PHP - Programmation
Marsh Posté le 27-11-2012 à 13:24:34
isset($_FILES sera toujours vrai. Par contre, PHP via le champ error de ce tableau vous indiquera l'absence de fichier
cette variable prenant la valeur UPLOAD_ERR_NO_FILE dans ce cas précis.
source : http://www.developpez.net/forums/d [...] onfichier/
Marsh Posté le 27-11-2012 à 12:02:17
Bonjour, j'ai un petit soucis en php.
J'ai créé un formulaire avec différents input text, des select... etc.
Et un input files (name = logo). Ce champ n'est pas obligatoire, j'aimerai tout simplement que mon script upload le fichier si le champs est renseigné.
Pour ce faire j'utilise : if(isset($_FILES['logo']))
et c'est à l'interieur de cette condition que j'ai mis mon code pour uploader le fichier (qui fonctionne correctement si je remplis le champ logo)
Pourtant si je décide de ne pas renseigner le champ, il me parcourt mon code et me dis que l'extension n'est pas bonne... (forcément il n'y en a pas !)
Je ne sais pas si j'ai été clair, voici le code :
if(isset($_FILES['logo']))
{
$dossier = '../php/logo/';
$fichier = basename($_FILES['logo']['name']);
$taille = filesize($_FILES['logo']['tmp_name']);
$extensions = array('.png', '.gif', '.jpg', '.jpeg', '.ai', '.pdf', '.psd', '.eps', '.tiff', '.bmp');
$extension = strrchr($_FILES['logo']['name'], '.');
if(!in_array($extension, $extensions))
{
$erreur = 'Vous devez uploader un fichier de type png, gif, jpg, jpeg, ai, pdf, psd, eps, tiff ou bmp';
}
if(!isset($erreur))
{
$fichier = strtr($fichier,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
if(move_uploaded_file($_FILES['logo']['tmp_name'], $dossier .$today.$extension))
{
echo 'Upload effectué avec succès !';
}
else
{
echo 'Echec';
}
}
else
{
echo $erreur;
}
} else {
echo 'Pas de logo';
}
EN gros, j'aimerai que si l'internaute ne renseigne pas le champ, on affiche directement "pas de logo", alors qu'au jour d'aujourd'hui il entre dans la première condition if.
Merci beaucoup ça doit être une erreur d’inattention mais je bloque