Page 1 sur 5

Help

Posté : 02 mai 2005, 17:02
par Flo
Bonjour, je débute en php (jcommence aujourd'hui) et je ne comprend pas un truc : j'ai créer une base avec easy php. J'ai ensuite créé une table ayant pour but d'y insérer des images. J'ai créé 4 champs dont un champ fichier ou je compte insérer les fichiers images de mon pc. Comment m'y prendre pour intégrer mes fichiers images maintenant ? (g mis varchar, taille=255).
Merci

Posté : 02 mai 2005, 17:07
par cyruss
Voici les différentes étapes :

- Tu upload ton image,
- tu récupère son extension,
- tu insere les infos dans la base
++ pour le champs image tu as pas vraiment besoin de le stocker. Tu peux te contenter de stocker son extension et renommer l'image avec comme nom l'identifiant de l'image. Ca evitera que les images uploadée s'écrasent entre elles.

Je sais pas si j'ai été clair.

Posté : 02 mai 2005, 17:10
par Cyrano
Salut et bienvenue dans le merveilleux monde du PHP.

Pour ton problème, tu as l'air de vouloir enregistrer les images directement dans la base. C'est techniquement faisable mais en pratique, il y a plus simple.

J'hésite à m'avancer plus loin parce qu'on va rentrer dans la technique à un niveau que tu ne seras peut-être pas capable de suivre. As-tu déjà programmé dans un langage autre que PHP (C, C++ ou C#, Java, autre?), et par le fait même, as-tu des bases solides en principes de programmation ?

Sinon, je dirais que commencer avec du traitement d'Upload est peut-être un peu hâtif dans ta progression. On pourra t'aider, mais tu risques de trouver la pente un peu raide.

merci

Posté : 02 mai 2005, 17:17
par Flo
Je doit faire une bibliothèque d'image en ligne dans le cadre de mon stage. Je suis donc "obligé" de rapidemment créer cette base de donnée donc je me doit de comprendre vite. (g des bases en programmation : java, javascript, action script et en bases de données : asp). Par contre je n'ai que les bases ayant peut pratiquer chacun de ces langages.

Posté : 02 mai 2005, 17:31
par Cyrano
Shématiquement, tu dois enregistrer d'une part les images dans un répertoire du site et d'autre part les informations sur les images dans la base de donnée.

À partir d'un formulaire html classique avec un champ de type "file" tu vas récupérer les informations dans une variable PHP nommée $_FILES qui est un tableau. Ce tableau contient l'endroit où a été temporairement stockée l'image sur le serveur, son poids, son nom, son type mime. Il te restera à utiliser deux fonctions :
- is_uploaded_file() pour enregistrer ton image dans le répertoire choisi;
- getimagesize() pour avoir les dimensions hauteur et largeur de l'image;
Tu enregistres ensuite les informations nécessaires dans les champs appropriés dans ta base de donnée.

Si tu as des difficultés avec une fonction, n'oublie pas le Manuel PHP en ligne qui sert toujours.
Et le forum est toujours ouvert :)

Posté : 02 mai 2005, 21:07
par Flo
Je voi pas trop comment faire ! Je panique un peu là...
C possible de me faire un ptit exemple ?

Posté : 02 mai 2005, 21:22
par Cyrano
difficile de te faire un petit exemple. J'ai monté un système pour un petit site et ça fonctionne bien, mais il m'a fallu plusieurs jours pour le mettre au point: t'expliquer tout ça en quelques messages sur le forum relèverait de la fantaisie et ça te rendrait moins service que de te couler un peu plus.

Ceci dit, faut pas paniquer: prends les choses une à la fois.
-1- Créer le répertoire qui va recueillir les images sur le site;
-2- définir clairement quelles sont les informations que tu vas devoir traiter en plus du fichier lui-même;
-3- Établir la structure de la base de données et les champs qui vont recevoir l'information sur les photos;
-4- Une fois tout ça fait, séparer le problème en deux :
- 4 - 1 - Upload de l'image
- 4 - 2 - Traitement des informations sur le fichier et enregistrement dans la base de données

Et en fin de compte.... ben c'est tout. Vas-y pas à pas et au fur et à mesure quand tu bloques sur un point, viens soumettre le problème et il se trouvera sûrement quelqun pour t'aider ici :)

Posté : 03 mai 2005, 09:47
par Flo
Merci de ton aide précieuse. j'ai fait les trois premières étapes. C'est à la quatrième que je bloque. Concrètement comment faire pour upload et enregistrer sur la base de donnée ?

Posté : 03 mai 2005, 10:13
par Cyrano
Commençons donc aves l'upload du fichier. Je présume que tu utilises un formulaire avec un champ de type "file" : explore dans le manuel la fonction [ur=http://fr2.php.net/manual/fr/function.i ... -file.phpl]is_uploaded_file()[/url]
Attention, dans l'exemple du manuel, il illustrent l'exemple avec une variable $_HTTP_POST_FILES[] : Tu peux remplacer par $_FILES[], l'autre formule étant devenue un peu obsolète.

Posté : 03 mai 2005, 10:45
par Flo
Sérieusement, on peu pa le faire directemment avec phpmyadmin ?
Paske le code, c'est du charabia pour moi. En faisant des recherches j'ai vu que Blob servai pour les champs ou on veu mettre des fichiers. QUe faire ?

Posté : 03 mai 2005, 10:51
par Cyrano
J'ai jamais essayé d'enregistrer des images via PhpMyAdmin et je suis pas certain qu'on puisse le faire.

Ceci dit, rien ne t'empèche d'uploader tes images par ftp et d'enregsitrer ensuite les infos dans ta base avec PhpMyAdmin.

C'est pas dynamique comme système, même si c'est techniquement valable.

Posté : 03 mai 2005, 11:11
par Flo
Bon, je te remercie de ta bonne volonté mais je ne comprend pa grand chose, je suis trop nul et je n'y arriverais pas. Je sais pas comment je vais faire car je doit faire cette base ! Encore une fois merci de ton aide

Posté : 03 mai 2005, 11:17
par iclo
Sérieusement, on peu pa le faire directemment avec phpmyadmin ?
Paske le code, c'est du charabia pour moi. En faisant des recherches j'ai vu que Blob servai pour les champs ou on veu mettre des fichiers. QUe faire ?
Il faudrait que tu nous explique ce que tu veux faire exactement : tu veux permettre l'ajout d'image depuis une partie du site web ?
Accéder à la base de donnée directement avec phpMyAdmin ne doit être permis qu'au responsable technique du site, pour éviter des erreurs de manipulations pouvant être assez facheuses.
Donc si c'est pour mettre la fonctionnalité d'ajout à disposition de néophyte qui ne connaisent rien en php et en sql, ça me semble suicidaire de passer par phpMyAdmin

Posté : 03 mai 2005, 11:26
par Flo
Ce que je doit faire est simple : je maitrise pas mal flash mai ne connaît rien en bases de données. Dans le cadre de mon stage, je suis amené à faire un site vitrine en flash. Celui-ci vas contenir un grand nombre d'images. Je suis donc (à mon avis) obligé de créer une base de données. Je veux juste pouvoir, à partir de flash, manipuler ces images.

Posté : 03 mai 2005, 11:29
par iclo
Tout dépend : si il faut que ces images puisse être ajouter, remplacer, supprimer par après par un webmaster qui n'y connait rien en flash ou en php