IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Upload] vérification du type de fichier envoyé


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    450
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 450
    Points : 123
    Points
    123
    Par défaut [Upload] vérification du type de fichier envoyé
    bonjour à tous, sur plusieurs de mes sites j'utilises le code suivant pour uploader des images, mais la, je viens d'essayer de l'adapter à un autre de mes sites, et quoi que j' upload comme image, sa me marque :
    "Vous devez uploader un fichier de type png, gif, jpg, jpeg !"

    Voici le code en question :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
     
    if (isset($_POST['enreg_img']))
    		{
    		$dossier = 'upload/';
    		$fichier = basename($_FILES['img']['name']);
    		$taille_maxi = 1000000;
    		$taille = filesize($_FILES['img']['tmp_name']);
    		$extensions = array('.png', '.gif', '.jpg', '.jpeg');
    		$extension = strrchr($_FILES['img']['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 png, gif, jpg, jpeg !';
    			}
    			if($taille>$taille_maxi)
    			{
    			$erreur = 'Le fichier est trop gros...';
    			}
    		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);
    			if(move_uploaded_file($_FILES['img']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
    				{
    				$id=$_GET['modif_img'];
    				mysql_query("UPDATE nav_accueil SET img='$fichier' WHERE id='$id'");
     
    				echo 'L\' image a bien été modifiée !';
    				}
    			else //Sinon (la fonction renvoie FALSE).
    				{
    				echo 'Echec de l\'upload !';
    				}
    			}
    		else
    			{
         		echo $erreur;
    			}
    		}
    	else
    		{
    		?>
    		<form method="post" action="">
    		<p><b>Modifier l' image de l' article :</b></p>
    		<input type="file" name="img" /> <input type="submit" name="enreg_img" />
    		</form>
    		<?php
    		}
    Merci par avance pour votre aide, jonathan .

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Il faut debugger : que vaut $extension lors de ton upload ?

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    450
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 450
    Points : 123
    Points
    123
    Par défaut
    J'ai esayé d'uploader du jpg, jpeg, png mais aucuns ne marchaient, c'est étrange, non?

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Ca ne change pas ma question.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    450
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 450
    Points : 123
    Points
    123
    Par défaut
    ah, euh je n'ai pas compris alors

    Peux tu reformuler ta question stp ?

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    $extension est censée recuperer l'extension du fichier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $extension = strrchr($_FILES['img']['name'], '.');
    c'est sur cette info que le script se base pour déterminer si l'extension est autorisée ou pas.
    donc il faut voir quelle valeur est elle a.
    un simple echo 'extension : ' .$extension; fait l'affaire.

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    450
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 450
    Points : 123
    Points
    123
    Par défaut
    sa ne retourne rien, c'est bizarre

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Fait un print_r ($_FILES); pour voir.

    Dans quelle version de PHP es-tu ?

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    450
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 450
    Points : 123
    Points
    123
    Par défaut
    Sa n'affiche rien non plus

  10. #10
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu n'as pas repondu a ma question.


    Sinon tu as bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form enctype="multipart/form-data" method="post">

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    450
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 450
    Points : 123
    Points
    123
    Par défaut
    arf ... mais quel c** !!! comme quoi parfois on cherche des erreurs pendant des heures la ou elle ne sont pas

    C'est bon, c'est reglé, merci enormement sabotage pour tes aides précieuses !

    Enfaite, ma version php : 4.4.8 hihi

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Champ upload : récupérer le nom du fichier envoyé
    Par EriCstoFF dans le forum WebDev
    Réponses: 1
    Dernier message: 27/09/2011, 12h15
  2. [PHP 5.2] [Upload] Vérification de type mime
    Par SpaceFrog dans le forum Langage
    Réponses: 9
    Dernier message: 03/01/2009, 10h19
  3. Réponses: 5
    Dernier message: 08/01/2008, 23h29
  4. [Upload] Type de fichiers et extensions pour upload
    Par temperature dans le forum Langage
    Réponses: 3
    Dernier message: 27/04/2006, 15h28
  5. Réponses: 10
    Dernier message: 18/11/2003, 18h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo