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 :

Erreur getimagesize avec fichier .JPG


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 100
    Points : 48
    Points
    48
    Par défaut Erreur getimagesize avec fichier .JPG
    Bonjour à tous,

    j'ai un formulaire pour uploader plusieurs fichiers en même temps... et j'ai remarqué que lorsque les fichiers sont au format ".jpg" je n'ai aucun problème ... par contre lorsque un fichier est au format ".JPG" (format issu d'un appareil photo) là plus rien ne fonctionne.

    j'utilise donc le code si dessous pour tester le nom du fichier à oploader et en extraire le type ...

    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
     
    		// On extrait les noms de fichiers
    		$fileNames 	= array_filter($_FILES['files']['name']); 
     
    		if(!empty($fileNames))
    		{ 
    			// Pour chaque fichier ...
    			foreach($_FILES['files']['name'] as $key=>$val)
    			{ 
    				$name =  $_FILES['files']['name'][$key];
                                    echo $name;
     
    				// ... on controle le type de fichier...
    				list($width, $height, $type, $attr) = getimagesize($_FILES['files']['tmp_name'][$key]);
     
                                    echo $type;
    	                        exit;
                            }
                    }
    avec un fichier ".jpg" cela fonctionne mais avec un fichier ".JPG" voici le résultat:

    echo $name renvoi bien le nom du fichier : DSCN5929.JPG

    mais getimagesize renvoie l'erreur suivante :
    Warning: getimagesize(): Filename cannot be empty in /home/dith1146/public_html/...etc

    je précise que j'ai fait un test en remplaçant l'extension du fichier "DSCN5929.JPG" par "DSCN5929.jpg" mais cela n'a rien résolu

    Quelqu'un aurait-il une idée ?

    Merci

  2. #2
    Membre expert
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 793
    Points : 3 064
    Points
    3 064
    Par défaut
    Bonjour

    Si je comprends bien, exactement le même fichier est fonctionnel si jpg mais plus si JPG.

    Je n'ai pas d'expérience ici mais cela me fait songer à un potentiel souci de mimetype.

    Peux-tu tester ce lien et voir si tu as le bon type https://www.php.net/manual/en/functi...ntent-type.php

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 322
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 322
    Points : 1 928
    Points
    1 928
    Par défaut
    Pourquoi tmp_name et pas name dans ton appel pour déterminer la taille de l'image ??? il sort d'où ce tmp_name ?

    L'extension ne fait pas seul le type de fichier qu'il est et jpg est identique à JPG, ça reste du jpeg. Changer l'extension par renommage du fichier ne changera pas son contenu.

    Le message d'erreur indique que tu passes un nom de fichier vide à ta fonction, ce qui revient à ma question initiale: pourquoi utiliser tmp_name et à quoi il correspond?

  4. #4
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 910
    Points : 6 703
    Points
    6 703
    Par défaut
    Citation Envoyé par umfred Voir le message
    Pourquoi tmp_name et pas name dans ton appel pour déterminer la taille de l'image ??? il sort d'où ce tmp_name ?
    name est le nom original du fichier sur la machine cliente. tmp_name est quant à lui le nom de ce même fichier mais sur le serveur, il est renommé automatiquement par PHP lors de l'upload avec un nom temporaire (ce qui pare à tout problème de compatibilité ou d'encodage du nom avec le système de fichiers du serveur, ainsi qu'aux problèmes d'écrasements en cas d'upload multiple si des fichiers portent le même nom).

  5. #5
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 910
    Points : 6 703
    Points
    6 703
    Par défaut
    Si je ne dis pas de bêtises, le format des photos provenant des cartes SD des appareils Nikon est particulier: chaque fichier est un container avec deux images: la photo dans un format brute (raw) et sa miniature, plus d'autres informations. Pour pouvoir les manipuler normalement il faut les convertir (donc extraire la photo). Le freeware dcraw permet de le faire, Il existe aussi le plugin UFRaw pour The Gimp qui s'appuie dessus.

    Tu peux aussi tenter ta chance avec l'extension PHP imagemagick qui pourrait gérer nativement certains formats propriétaires.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 100
    Points : 48
    Points
    48
    Par défaut
    Bonjour à tous,

    Merci pour vos réponses mais entretemps j'ai résolu mon problème en upgradant simplement la version PHP de mon serveur sans rien changer à mon code... Va comprendre

    Cdt,

  7. #7
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 780
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 780
    Points : 43 983
    Points
    43 983
    Par défaut
    Va comprendre
    L'upgrade PHP a du améliorer le support du jpg.

  8. #8
    Membre expert
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 793
    Points : 3 064
    Points
    3 064
    Par défaut
    Hello

    Quelle version utilisais-tu ?

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 100
    Points : 48
    Points
    48
    Par défaut
    J'ai fait un bon de PHP 5.1 à 7.4

  10. #10
    Membre expert
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 793
    Points : 3 064
    Points
    3 064
    Par défaut
    Ah ouais... Fallait préciser que tu étais encore à l'âge d'avant l'invention de la couleur 😋.

    Note : php 7.x est mort, songe à basculer vers php 8.3.

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

Discussions similaires

  1. erreur bioperl avec fichier FASTA
    Par karaudrey88 dans le forum Bioinformatique
    Réponses: 0
    Dernier message: 13/12/2012, 14h54
  2. erreur 403 avec fichier quizResult.log
    Par wagon2 dans le forum Apache
    Réponses: 1
    Dernier message: 30/10/2012, 21h40
  3. IMG_Load avec fichiers .jpg et png
    Par edgarjacobs dans le forum SDL
    Réponses: 4
    Dernier message: 01/03/2012, 00h54
  4. lien avec fichier .jpg
    Par edelweisseric dans le forum Flash
    Réponses: 10
    Dernier message: 22/05/2006, 12h02

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