[PHP]Array et extension de fichier
Résolu
winco07
Messages postés
117
Date d'inscription
Statut
Membre
Dernière intervention
-
Balafr3 -
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.
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:
- [PHP]Array et extension de fichier
- Fichier bin - Guide
- Changer extension fichier - Guide
- Fichier epub - Guide
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
4 réponses
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é...
}
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é...
}
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é...
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
Merci bcp
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!
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!