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 :

gestion upload image


Sujet :

Langage PHP

  1. #1
    Membre régulier Avatar de sub-0
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 197
    Points : 76
    Points
    76
    Par défaut gestion upload image
    Bonjour,
    Voila j'ai crée un petit code pour charger une image, et je veux gérer les cas suivants:
    - Chargement d'un fichier non image.
    - Chargement une image d'une taille > 1Mo.
    le problème c'est que tout marche bien sauf quand je charge une image > 1Mo, le prog me renvoi l'erreur d'un fichier inconnue et pas celui qui concerne la taille de l'image.
    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
     
    if(!empty($_FILES["fichier"]["name"]))
    	{	
    		$taille_max = 1000000;
     
    		$nom_Fichier    = $_FILES["fichier"]["name"] ;
     
    		$nom_Temporaire = $_FILES["fichier"]["tmp_name"] ;
     
    		$poids_Fichier  = $_FILES["fichier"]["size"] ;
    		if($poids_Fichier > $taille_max)
    		{	
    			array_push($error,"La taille de l'image que vous avez chargé est très grande.");
    		}echo $poidsFichier;
     
    		$typeFichier   = $_FILES["fichier"]["type"] ;
    		if( !strstr($typeFichier, 'jpg') && !strstr($typeFichier, 'jpeg') && !strstr($typeFichier, 'bmp') && !strstr($typeFichier, 'gif') )
    		{
    			array_push($error,"Le fichier n'est pas une image");
    		}
     
    		//chemin qui mène au dossier qui va contenir les fichiers uplaod:
    		$chemin = "..\..\img\\" ;
     
    		if(copy($nom_Temporaire, $chemin.$nom_Fichier))
    			echo("<br>l'upload a réussi<br>") ;
    		else
    			array_push($error,"L'upload a echoué.");
    	}//fin if
    	else
    	{
    		array_push($error,"Vous n'avez pas choisit de fichier!!") ;
    	}//fin else		
     
    	if(count($error))
    	{  
    		echo "<font face=Verdana size=2 color=#CC0000><b>";
    		echo "Attention,";
    		while($error)
    		{ // tant que le tableau n'est pas vide
    			echo array_shift($error)."<br>"; 
    		}
    		echo "</b></font>";
    	}
    quand j'affiche le nom temporaire et la taille du fichier, il m'affiche rien pour le nom et 0 pour la taille.
    Merci d'avance.

  2. #2
    Expert confirmé
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Points : 4 853
    Points
    4 853
    Par défaut
    tu dois peut être d'abord corriger des erreurs de syntaxe ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $chemin = "..\..\img\\" ;
    //par
    $chemin = "..\\..\\img\\" ;

  3. #3
    Membre régulier Avatar de sub-0
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 197
    Points : 76
    Points
    76
    Par défaut
    Merci bien, mais le problème que j'arrive pas a résoudre toujours c'est le contrôle du poids de l'image chargé .

  4. #4
    Expert confirmé
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Points : 4 853
    Points
    4 853
    Par défaut
    Merci bien, mais le problème que j'arrive pas a résoudre toujours c'est le contrôle du poids de l'image chargé
    Que veux tu dire par là ?

  5. #5
    Membre régulier Avatar de sub-0
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 197
    Points : 76
    Points
    76
    Par défaut
    Mon code que j'ai posté me renvoi cette erreur quand j'essaye de charger un fichier plus grand que 1 Mo:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Warning: copy() [function.copy]: Filename cannot be empty in C:\wamp\www\version2\lib\NewsLetters\ajouterNews.php on line 52
    Attention,Le fichier n'est pas une image
    L'upload a echoué.

  6. #6
    Expert confirmé
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Points : 4 853
    Points
    4 853
    Par défaut
    Le message d'erreur est claire, l'un des arguments passé à la fonction copy n'est pas valide.

  7. #7
    Membre régulier Avatar de sub-0
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 197
    Points : 76
    Points
    76
    Par défaut
    Oui justement il charge pas l'image dans la mémoire car le poids de l'image est lourd, par conséquent il arrive pas a exécuter le copy(), mais comment faire pour gérer ce cas la ?

  8. #8
    Expert confirmé
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Points : 4 853
    Points
    4 853
    Par défaut
    Citation Envoyé par sub-0 Voir le message
    Oui justement il charge pas l'image dans la mémoire car le poids de l'image est lourd, par conséquent il arrive pas a exécuter le copy(), mais comment faire pour gérer ce cas la ?
    Je pense pas que ça soit la cause de l'erreur.

  9. #9
    Membre régulier Avatar de sub-0
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 197
    Points : 76
    Points
    76
    Par défaut
    J'ai fais quelque modifications et ça m'affiche ça quand le poid de l'image dépasse 2Mo :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Attention,Le fichier n'est pas une image
    voila le nouveau code:

    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(!empty($_FILES["fichier"]["name"]))
    	{	
    		$taille_max = 1000000;
     
    		$nom_Fichier    = $_FILES["fichier"]["name"] ;
     
    		$nom_Temporaire = $_FILES["fichier"]["tmp_name"] ;
     
    		$poids_Fichier  = $_FILES["fichier"]["size"] ;
     
    		if($poids_Fichier > $taille_max)
    		{	
    			array_push($error,"La taille de l'image que vous avez chargé est très grande.");
    		}
     
    		$typeFichier   = $_FILES["fichier"]["type"] ;
     
    		if( !strstr($typeFichier, 'jpg') && !strstr($typeFichier, 'jpeg') && !strstr($typeFichier, 'bmp') && !strstr($typeFichier, 'gif') )
    		{
    			array_push($error,"Le fichier n'est pas une image");
    		}		
     
    	}
     
    	else
    	{
    		array_push($error,"Vous n'avez pas choisit de fichier!!") ;
    	}	
     
     
    	if(count($error))
    	{  
    		echo "<font face=Verdana size=2 color=#CC0000><b>";
    		echo "Attention,";
    		while($error)
    		{ // tant que le tableau n'est pas vide
    			echo array_shift($error)."<br>"; 
    		}
    		echo "</b></font>";
    	}
    	else
    	{
    		$chemin = "..\\..\\img\\" ;
     
    		if(copy($nom_Temporaire, $chemin.$nom_Fichier))
    			echo("<br>l'upload a réussi<br>") ;
    		else
    			echo("L'upload a echoué.");
     
    	}
    Je pense qu'il charge pas l'image dans la mémoire comme ça il n'a pas de nom temporaire et quand il teste l'extension il trouve rien.

  10. #10
    Expert confirmé
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Points : 4 853
    Points
    4 853
    Par défaut
    La taille maximale du fichier à télécharger dépend de la configuration de php(voir upload_max_filesize, post_max_size) . Je te conseille également d'utiliser la fonction move_uploaded_file au lieu de copy.

  11. #11
    Membre régulier Avatar de sub-0
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 197
    Points : 76
    Points
    76
    Par défaut
    Merci bien, j'ai utilisé move_uploaded_file, et pour la gestion du poids j'ai ajouté un teste pour savoir si la taille egale a zero ou cas ou l'image n'est pas chargée et ça marche bien.

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

Discussions similaires

  1. [2.x] page gestion upload images
    Par swingstar dans le forum Symfony
    Réponses: 5
    Dernier message: 20/01/2014, 18h48
  2. [MySQL] Gestion & upload des images
    Par redah75 dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 01/04/2010, 17h11
  3. Gestion des images en UpLoad
    Par zooffy dans le forum ASP.NET
    Réponses: 7
    Dernier message: 05/02/2010, 10h11
  4. [Upload] Perdu dans la gestion des images
    Par thewaawshow dans le forum Langage
    Réponses: 9
    Dernier message: 19/09/2007, 15h32
  5. [TP]Gestion des images bmp avec BMP.TPU
    Par Gabi dans le forum Turbo Pascal
    Réponses: 9
    Dernier message: 15/05/2004, 00h20

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