Rechercher : dans
Par :

[PHP]Array et extension de fichier

Dernière réponse le 3 fév 2009 à 17:19:18 winco07, le 3 fév 2009 à 17:04:43 
 Signaler ce message aux modérateurs

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.

Configuration: Windows XP
Firefox 3.0.5

Meilleures réponses pour « [PHP]Array et extension de fichier » dans :
PHP - Les fichiers Voir La gestion des fichiers avec PHP Avec PHP, la création ou la lecture de fichiers est, une fois de plus, assez simple. Il existe une multitude de fonctions dédiées à l'utilisation des fichiers. La communication entre le script PHP et le fichier...
[PHP] Upload de fichiers VoirLe langage PHP permet de gérer des fichiers envoyés (uploadés) grâce à un formulaire HTML. Formulaire d'envoi de fichiers Configuration de PHP pour permettre l'upload Récupération du fichier avec PHP Formulaire d'envoi de fichiers La...
Lire un fichier WMV,Fichier WMV, Extension WMV, WMV VoirUn fichier WMV est une vidéo au format propriétaire Microsoft Windows Media Video. Un fichier portant l'extension .WMV contient à la fois des données audio et vidéo, compressées pour pouvoir être diffusées en streaming, à la manière du MPEG2 ou du...
Associer une application à une extension de fichiers VoirAfficher toutes les extensions de fichiers Par défaut, Windows XP masque les extensions dont le type est connu. Pour afficher toutes les extensions : Dans le Poste de travail ou l'explorateur Windows, cliquer sur le menu "Outils" et choisir...
Télécharger PHP Edit VoirPHPEdit est un environnement de développement intégré (IDE) sous Windows pour le langage PHP. Il offre un grand nombre de fonctionnalités permettant de développer plus efficacement : Coloration syntaxique Auto-complétion des fonctions Débuggeur...
Télécharger PHP FTP Synchronizer VoirLa mise à jour de site web est aussi complexe que sa conception. Alors il faut utiliser le bon outil avec les bon paramètres et une bonne connaissance de programmation pour mettre à jour un site. PHP FTP Synchronizer est une application vous...
Fichier AMR VoirFormat AMR Un fichier AMR est un fichier audio compressé. Le format AMR (Adaptive Multi-Rate Codec, et dont l'extension correspondante est *.amr) est largement utilisé par les téléphones portables pour enregistrer des sonneries ou pour créer des...
Implantation du code Php VoirL'interprétation du code par le serveur Un script PHP est un simple fichier texte contenant des instructions écrites à l'aide de caractères ASCII 7 bits (des caractères non accentués) incluses dans un code HTML à l'aide de balises spéciales et...
Fichier 7Z VoirFormat 7Z Un fichier 7Z est un fichier compressé. Comment lire un fichier 7z ? Pour décompresser un fichier 7Z, il suffit d'utiliser le logiciel suivant : 7zip

1

jona303, le 3 fév 2009 à 17:08:33

Tu fais un
if ($_FILES) {
ton code

}

si j'ai bien compris :)
Chuck Norris n'utilise pas de navigateur. Il lit le code sou­rce et imagine la page.
Question de gain de temps...

Répondre à jona303

2

winco07, le 3 fév 2009 à 17:13:38

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é...

Répondre à winco07

3

jona303, le 3 fév 2009 à 17:16:46

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é...
} Chuck Norris n'utilise pas de navigateur. Il lit le code source et imagine la page.
Question de gain de temps...

Répondre à jona303

4

 winco07, le 3 fév 2009 à 17:19:18

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

Répondre à winco07