Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1404 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Recuperer le nom d'une photo

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Recuperer le nom d'une photo

n°1511427
endozen
Endorsen
Posté le 06-02-2007 à 15:44:36  profilanswer
 

Voilà j'ai construit un formulaire d'upload en php/mysql avec envoi des photos dans un répertoire.
Je souhaiterai savoir s'il était possible d'introduire un champ masqué dans mon formulaire qui récupererai
le nom de la photo envoyée ( valeur de ce champ codé en php bien sur ).
 
Merci !

mood
Publicité
Posté le 06-02-2007 à 15:44:36  profilanswer
 

n°1511429
dwogsi
Défaillance cérébrale...
Posté le 06-02-2007 à 15:45:55  profilanswer
 

Quel nom?
Si c'est le nom du fichier, tu l'as déjà...


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
n°1511437
endozen
Endorsen
Posté le 06-02-2007 à 15:53:26  profilanswer
 

mwoui mais par quelle manip je peux le mettre dans une variable pour l'envoyer dans ma base ?
tu veux dire avec ca : $_FILES['userfile']['name'] ?
Mais je ne vois pas comment m'en servir..je débute en php


Message édité par endozen le 06-02-2007 à 15:56:48
n°1511442
dwogsi
Défaillance cérébrale...
Posté le 06-02-2007 à 15:57:46  profilanswer
 

Ba tu l'as dans une variable de ce genre là :
$_FILES['fichier']['name']

 

Donc suffit de l'insérer dans ta bdd.

 

Edit : Ok je viens de voir la suite... Et bien tu insert cette variable dans une chaine qui va constituer ta requête puis tu envois le tout au sgbd. Si tu ne sais pas comment faire, je t'invite à aller apprendre les bases du langage avant de t'attaquer à trop compliqué. Et, comme je me plait à le dire, on ne met pas la charue avant les boeufs.


Message édité par dwogsi le 06-02-2007 à 18:10:41

---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
n°1511517
endozen
Endorsen
Posté le 06-02-2007 à 17:53:27  profilanswer
 

bon j'ai plus au moins compris la théorie : mon image est en méthode POST vers une page upload.php qui vérifie sont contenu, et de même les champs titre/date/lieu ect... sont envoyé à cette même page via l'url ( je pense pas qu'on puisse définir deux méthodes dans un seul formulaire : vers une page php ET vers sql ). upload.php finira le travail en envoyant l'image dans un répertoire et les champs texte dans la base. Jme trompe sur l'enchainement des étapes ?

n°1511574
sielfried
Posté le 06-02-2007 à 21:21:10  profilanswer
 

Oula... Faut revoir les bases là...


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1511667
Yanlaz
Posté le 07-02-2007 à 09:18:10  profilanswer
 

je te conseille de faire un petit tour sur lesiteduzero ou phpdebutant.
Ca te sera surement très utile et tu trouveras facilement les réponses a tes questions

n°1513087
endozen
Endorsen
Posté le 10-02-2007 à 21:27:12  profilanswer
 

bref on est pas la pour discuter des mes pauvres compétences. J'aimerai juste savoir quelle philosophie je dois adopter : J'aimerai n'utiliser qu'un formulaire pour : completer une base de donnée + l'upload d'image dans un repertoire. Les deux marchent nickel chaucun de leur coté et j'aimerai savoir si je peux ne faire qu'un formulaire !

n°1513115
Surfoo
Ça va ? ok.
Posté le 11-02-2007 à 00:42:58  profilanswer
 

Oui c'est possible.

n°1513765
endozen
Endorsen
Posté le 12-02-2007 à 17:46:55  profilanswer
 

bon j'y suis arriver : j'ai créer un formulaire en méthode post vers une page php qui gère la photo et la gestion de la base de donnée.  
 
Je souhaite ajouter un 3eme script php dans cette page : celui de la création de la vignette. Le script est écrit et marche avec une image déjà sur le serveur. Seulement quand je teste avec une image que j'upload le code s'execute avant que l'upload ne soit fini, et il me retourne donc "no such file".
 
Je cherche donc une petite astuce qui permet de vérifier que l'upload est complet avant de lancer ce sript. J'ai pense a file_exist($file)..sans aboutir.
Quelqu'un aurait-il une idée ?

mood
Publicité
Posté le 12-02-2007 à 17:46:55  profilanswer
 

n°1513769
skeye
Posté le 12-02-2007 à 17:52:12  profilanswer
 

endozen a écrit :

Seulement quand je teste avec une image que j'upload le code s'execute avant que l'upload ne soit fini, et il me retourne donc "no such file".


[:roane]
 
Montre ton code.[:dawao]


---------------
Can't buy what I want because it's free -
n°1513776
endozen
Endorsen
Posté le 12-02-2007 à 18:06:14  profilanswer
 

Voici la page upload.php qui recoit donc les variables du formulaire :

Code :
  1. <?php
  2. //[ Remplissage de la table ]
  3. $url=$_FILES['photo']['name'];
  4. $date=date('Y-m-d');
  5. mysql_query("INSERT INTO photo VALUES('','$titre','$date','$lieu','$commentaire','$retouche','$url','$categorie')" );
  6.  
  7. //[ Script d'upload ]
  8.  
  9. $dossier = 'upload/';
  10. $fichier = basename($_FILES['photo']['name']);
  11. $taille_maxi = 10000000;
  12. $taille = filesize($_FILES['photo']['tmp_name']);
  13. $extensions = array('.png', '.gif', '.jpg', '.jpeg', '.JPG', '.JPEG');
  14. $extension = strrchr($_FILES['photo']['name'], '.');
  15.  
  16. if(!in_array($extension, $extensions))
  17.     {
  18.          $erreur = 'type png, gif, jpg, jpeg...';
  19.     }
  20.     
  21. if($taille>$taille_maxi)
  22.     {
  23.          $erreur = '10mo maxi...';
  24.     }
  25.     
  26. if(!isset($erreur))
  27.     {    
  28.          $fichier = strtr($fichier,
  29.                   'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
  30.                   'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
  31.          $fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
  32.          if(move_uploaded_file($_FILES['photo']['tmp_name'], $dossier . $fichier))
  33.              {
  34.                   echo 'Upload effectué avec succès !';
  35.              }
  36.          else
  37.              {
  38.                   echo 'Echec de l\'upload !';
  39.              }
  40.     }
  41. else
  42.     {
  43.          echo $erreur;
  44.     }
  45.  
  46. //[ Script de création de la vignette ]
  47.  
  48. $nomfichier='upload/'.$url;
  49. $dest='upload/nails/'.$url;
  50.     
  51. $source = imagecreatefromjpeg($nomfichier);
  52.     
  53. $destination = imagecreatetruecolor(200, 150);
  54.     
  55. $largeur_source = imagesx($source);
  56.     
  57. $hauteur_source = imagesy($source);
  58.     
  59. $largeur_destination = imagesx($destination);
  60.     
  61. $hauteur_destination = imagesy($destination);
  62.     
  63. imagecopyresampled($destination, $source, 0, 0, 0, 0, $largeur_destination, $hauteur_destination, $largeur_source, $hauteur_source);    
  64.     
  65. imagejpeg($destination, $dest,75);
  66.  
  67. ?>

Merci pour l'astuce -ThX-


Message édité par endozen le 12-02-2007 à 18:17:43
n°1513778
endozen
Endorsen
Posté le 12-02-2007 à 18:06:41  profilanswer
 

ha bah sans les couleurs c'est tt de suite moins beau. :)

n°1513780
-ThX-
Not here anymore
Posté le 12-02-2007 à 18:09:50  profilanswer
 

[code =php ] Ton code [ /code] sans les espaces

n°1513859
endozen
Endorsen
Posté le 12-02-2007 à 21:31:22  profilanswer
 

voici exactement l'erreur retournée : Warning: imagecreatefromjpeg(upload/iii 054.jpg): failed to open stream: No such file or directory in /home5/e/endorsen/www/admin/upload.php on line 72


Message édité par endozen le 12-02-2007 à 21:31:36
n°1513866
endozen
Endorsen
Posté le 12-02-2007 à 22:03:32  profilanswer
 

ce problème est dû tt simplement à un pb d'espace dans le fichier...j'aurai du m'en douter avant.

n°1513940
nycius
Ich liebe dich !
Posté le 13-02-2007 à 09:07:44  profilanswer
 

yes ca doit poser soucis, encode les noms de fichiers avant des les uploader

n°1514683
endozen
Endorsen
Posté le 14-02-2007 à 17:42:16  profilanswer
 

J'ai bien avancé dans mon projet, mais je suis face à une autre difficulté : lire un tableau associatif. J'essai de mettre en place la fonction qui permet de lire les entêtes d'une photo : exif_read_data().
 
[code=php]
<?php
echo "test1.jpg:<br />\n";
$exif = exif_read_data('tests/test1.jpg', 'IFD0');
echo $exif===false ? "Aucun en-tête de donnés n'a été trouvé.<br />\n" : "L'image contient des en-têtes<br />\n";
 
$exif = exif_read_data('tests/test2.jpg', 0, true);
echo "test2.jpg:<br />\n";
foreach ($exif as $key => $section) {
    foreach ($section as $name => $val) {
        echo "$key.$name: $val<br />\n";
    }
}
?>
[/php]
Ceci marche très bien, voir trop bien. Je n'ai besoin que de certaines valeurs, ce code me sort tout le tableau (avec l'instruction foreach).
J'ai tenté de chercher comment lire un tableau associatif sans succès.
Comment puis je sélectionner une ligne de ce tableau, ainsi que sa valeur ?


Message édité par endozen le 14-02-2007 à 17:45:13
n°1514685
skeye
Posté le 14-02-2007 à 17:44:08  profilanswer
 

bah tu accèdes comme les autres tableaux... $exif[key]...


---------------
Can't buy what I want because it's free -
n°1514695
endozen
Endorsen
Posté le 14-02-2007 à 17:51:02  profilanswer
 

Mais par exemple quand je test $exif['ISOSpeedRatings'] , cette variable est vide.

n°1514697
skeye
Posté le 14-02-2007 à 17:52:19  profilanswer
 

print_r($exif) te donne quoi?


---------------
Can't buy what I want because it's free -
n°1514700
endozen
Endorsen
Posté le 14-02-2007 à 17:53:48  profilanswer
 

bon aller..je te colle le résultat :  
 
Array ( [FILE] => Array ( [FileName] => iii116.jpg [FileDateTime] => 1171322377 [FileSize] => 117285 [FileType] => 2 [MimeType] => image/jpeg [SectionsFound] => ANY_TAG, IFD0, THUMBNAIL, EXIF, INTEROP ) [COMPUTED] => Array ( [html] => width="480" height="640" [Height] => 640 [Width] => 480 [IsColor] => 1 [ByteOrderMotorola] => 0 [ApertureFNumber] => f/6.0 [Thumbnail.FileType] => 2 [Thumbnail.MimeType] => image/jpeg ) [IFD0] => Array ( [Make] => SONY [Model] => DSC-S500 [Orientation] => 1 [XResolution] => 72/1 [YResolution] => 72/1 [ResolutionUnit] => 2 [Software] => Adobe Photoshop Album Starter Edition 3.0 [DateTime] => 2007:02:04 13:50:56 [YCbCrPositioning] => 2 [Exif_IFD_Pointer] => 240 [UndefinedTag:0xC4A5] => PrintIM
 
Par exemple j'aimerai juste sélectionner la ligne [ApertureFNumber] => f/6.0


Message édité par endozen le 14-02-2007 à 17:55:26
n°1514703
nycius
Ich liebe dich !
Posté le 14-02-2007 à 17:54:44  profilanswer
 

Donc ISOSpeedRatings est pas dans ton tableau ...

n°1514705
endozen
Endorsen
Posté le 14-02-2007 à 17:58:07  profilanswer
 

oui mais bizarrement $exif['ApertureFNumber'] ne marche pas mieux, je dois peut etre avoir la syntaxe d'accès a la ligne incomplete : il manque pas un COMPUTED ?

n°1514707
sielfried
Posté le 14-02-2007 à 17:59:22  profilanswer
 

$exif['COMPUTED']['ApertureFNumber']


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1514709
nycius
Ich liebe dich !
Posté le 14-02-2007 à 17:59:51  profilanswer
 

Pourtant $exif['ApertureFNumber']  est dans ton tableau

n°1514711
endozen
Endorsen
Posté le 14-02-2007 à 18:00:31  profilanswer
 

Merci sielfried ! Et les autres aussi bien sur!
excellent, je vous dois combien ? :D merci mille fois


Message édité par endozen le 14-02-2007 à 18:01:12
n°1515629
endozen
Endorsen
Posté le 16-02-2007 à 15:56:59  profilanswer
 

Bon j'ai fais une petite pause dans ma programmation mais je m'y remet doucement : j'aimerai maintenant afficher sur l'index des catégories : Par exemple je prends le pays.
 
J'aimerai que mon script scan ma table, trouve tous les pays différents, et m'affiche tous les enregistrements par pays (faire un trableau pour chaque pays, avec le nom du pays au dessu, puis insérer des sautes de lignes avant le tableau d'un autre pays).
 
J'ai commencer a rédiger un script a 2 francs pour trouver toutes les occurences, mais de fait de ma faible expérience, je pense que c'est lourd et qu'on peut faire bcp mieux avec la bibliothèque de php.
 

Code :
  1. <?php
  2. do {
  3.     $ancien=$row_tri['pays'];
  4.     if ($ancien!=$nouveau) {
  5.         echo $row_tri['pays'];
  6.         $nouveau=$ancien;
  7.     }
  8.  
  9.     }
  10. while ($row_tri = mysql_fetch_assoc($tri));
  11.  
  12. ?>


Message édité par endozen le 26-02-2007 à 19:21:52
n°1520472
endozen
Endorsen
Posté le 26-02-2007 à 19:19:17  profilanswer
 

Je pense meme que je fais completement fausse route, et qu'il faudrait que je me tourne vers plusieurs requetes sql, avec Select * from matable where pays=$pays, puis afficher successivement tous les enregistrements.

n°1520707
skeye
Posté le 27-02-2007 à 09:54:00  profilanswer
 

hein?[:pingouino]
Tu veux faire quoi exactement? Récupérer tous les enregistrements d'une table et les afficher un par un? :??:


---------------
Can't buy what I want because it's free -
n°1522324
endozen
Endorsen
Posté le 01-03-2007 à 15:20:21  profilanswer
 

merci skeye d'avoir essayer :D Mais j'ai réussi.
 
Je voulais juste les afficher de la façon suivante : www.endorsen.com

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Recuperer le nom d'une photo

 

Sujets relatifs
[Résolu] Récupérer le nom des champs d'une table MySQLProblème pour récuperer une image dans une variable
[.NET 2.0] Récupérer la couleur d'un control côté serveurrecupérer derniere valeur enregister
pbleme pour recuperer valeur d'un champRecuperer le texte de la console
Recuperer une variable XML via PHPRécupérer précisemment une erreur ODBC
Récupérer les dernières lignes d'une table (et non les premières)Récuperer le chemin d'une image d'une PictureBox
Plus de sujets relatifs à : Recuperer le nom d'une photo


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR