[PHP]Array et extension de fichier

Résolu
winco07 Messages postés 117 Date d'inscription   Statut Membre Dernière intervention   -  
 Balafr3 -
Bonjour,


Petit souci pour certain mais gros problème pour moi.


J'ai un formulaire de modification. l'utilisateur a pour choix de changer ou pas une image. L'extension de celle ci est contrôlée (jpg uniquement) le souci c'est que du coup je n'ai pas le droit de ne rien mettre dans le champs de l'image.
Les extensions sont stockées dans un tableau ( Array).


Voici le code de la partie concernée :

$extensions = array('.jpg');
$extension = strrchr($_FILES['image']['name'], '.');
//Début des vérifications de sécurité...
if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau


j'avais pensé faire $extensions = array('.jpg, '); mais ca ne marche pas

Merci pour vos réponses.
A voir également:

4 réponses

jona303 Messages postés 369 Date d'inscription   Statut Membre Dernière intervention   28
 
re,
ton problème en fait est le cas ou l'utilisateur ne met rien dans '<input type="file"/> ?
Si c'est le cas, vérifie que tu recois bien un file avant de mattre ton code d'upload. :)

avec un
if ($_FILES) {
$dossier = 'upload/';
$fichier = basename($_FILES['image']['name']);
$taille_maxi = 1000000;
$taille = filesize($_FILES['image']['tmp_name']);
$extensions = array('.jpg');
$extension = strrchr($_FILES['image']['name'], '.');
//Début des vérifications de sécurité...
if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
{
$erreur = 'Vous devez uploader un fichier de type jpg';
}
if($taille>$taille_maxi)
{
$erreur = 'Le fichier est trop gros...';
}
else
{
echo $erreur;
}
if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
{
//On formate le nom du fichier ici...
$fichier = strtr($fichier,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
$MonObjet = $_POST['Objet'];
if(move_uploaded_file($_FILES['image']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
}
1
jona303 Messages postés 369 Date d'inscription   Statut Membre Dernière intervention   28
 
tu fais un
if ($_FILES) {
ton code

}

si j'ai bien compris :)
0
winco07 Messages postés 117 Date d'inscription   Statut Membre Dernière intervention  
 
Voila mon code :

$dossier = 'upload/';
$fichier = basename($_FILES['image']['name']);
$taille_maxi = 1000000;
$taille = filesize($_FILES['image']['tmp_name']);
$extensions = array('.jpg');
$extension = strrchr($_FILES['image']['name'], '.');
//Début des vérifications de sécurité...
if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
{
     $erreur = 'Vous devez uploader un fichier de type jpg';
}
if($taille>$taille_maxi)
{
     $erreur = 'Le fichier est trop gros...';
}
else
{
     echo $erreur;
}
if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
{
     //On formate le nom du fichier ici...
     $fichier = strtr($fichier,
          'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
          'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
     $fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
	 $MonObjet = $_POST['Objet'];
     if(move_uploaded_file($_FILES['image']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
0
winco07 Messages postés 117 Date d'inscription   Statut Membre Dernière intervention  
 
Ha ben oui, je n'y avais pas pensé mais ça résous mon souci. Si le il n'y a pas de fichier je fais rien sinon je vérifie.

Merci bcp
0
Cassis33
 
Salut!
Désolée de vous déranger.
Je sais que c'est pas dans le sujet mais je cherche le nom d'un film.
L'histoire:
C'est une fille qui s'appelle Lola et qui a un mec qui s'appelle Maël.
Puis il y a les histoires de parents qui divorcent.
C'est un film avec Sophie Marceau sorti en 2009.
Je sais que c'est pas du tout dans le sujet mais s'il vous plaît,je me souviens plus du tout.
Merci et encore désolée pour le hors sujet.
Je serais pas venue si je m'en souvenais.
Pitié!
Merci!
0
Balafr3
 
lol
0