|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 |
|
Inscrit
Inscription : juin 2006 Messages : 531 ![]() |
Bonjour,
Je viens de survoler le tuto sur l'enregistrement des images, donc apparement la bonne solution c'est de les stocker dans un dossier et puis d'expédier seulement l'adresse de la photo dans la base, dans un champs varchar. Bon. Mais alors j'ai jamais bossé ni avec les fichiers ni avec les images Donc en fait, comment je fais pour : 1) contrôler le format (.jpg obligatoire, éventuellement gif, ou png). 2) contrôler le poids (par exemple 20ko maxi). 3) contrôler les dimensions (par exemple 130*130) 4) vérifier que tout est bon 5) si c'est bon, comment j'envoie la photo dans le fichier ? Il faut que je la nomme, à priori avec l'id du client et puis je reconstruit l'url et l'envoie dans la base. C'est ça ? J'attend votre aide pour ces étapes parce que je ne vois pas du tout comment faire. Merci d'avance et bonne année au passage |
|
|
00
|
|
|
#2 |
|
Inactif
![]() Inscription : septembre 2004 Messages : 11 753 ![]() |
Alors dans l'ordre :
|
|
|
00
|
|
|
#3 | ||||
|
Inscrit
Inscription : juin 2006 Messages : 531 ![]() |
Salut Kerod et merci de ta réponse,
Alors j'ai envie de commencer par controler le poids. J'ai donc ramassé cette fonction, quelque part dans un obscure coin du net : Code :
Ce que je veux en fait, c'est ça : Code :
|
||||
|
|
00
|
|
|
#4 | ||
|
Membre expérimenté
![]() Inscription : mai 2002 Messages : 673 ![]() |
JE me permet de faire un copier coller direct d'un jeu PHP à moi où je demande a l'utilisateur d'envoyer une image comme tag de clan en 16*12 :
Code :
EDIT : pour la compréhension au niveau du nom du fichier, je me suis pas fait chier, <id_clan>.gif. De la sorte, je suis sur de ne pas avoir de doublons dans les noms et je me fait pas chier a stocké de nom de fichier dans ma BDD, l'id suffisant. |
||
|
|
00
|
|
|
#5 | ||||
|
Inscrit
Inscription : juin 2006 Messages : 531 ![]() |
Bon alors, je me réveille et je reviens sur le problème.
Merci Gloubi pour ton bout de code... auquel je pige pas lourd mais bon. Déjà, j'essaie d'afficher le poids de l'image, je fais ça : Sur la page avec le bouton parcourir, on m'a dit de rajouter la parti enctype : Code :
Code :
Code :
Warning: filesize() [function.filesize]: Stat failed for Array (errno=2 - No such file or directory) in |
||||
|
|
00
|
|
|
#6 |
|
Membre expérimenté
![]() Inscription : mai 2002 Messages : 673 ![]() |
Si tu veux que ton images soit de dimension données (que ça soit une valeur exact ou un interval), oublie le poid de l'image !
Il existe une extension nomé gd2 qui est faite exprès pour ça ! prend le temps d'analyser mon code (il est actuellement en prod donc garanti 100% opérationnel), d'autant que ça te resservira un jour ! |
|
|
00
|
|
|
#7 |
|
Membre habitué
![]() Inscription : novembre 2006 Messages : 126 ![]() |
c'est parce que $_FILES['photo'] est un tableau
|
|
|
00
|
|
|
#8 | ||
|
Inscrit
Inscription : juin 2006 Messages : 531 ![]() |
Citation:
Citation:
Donc en fait, concrêtement je fais quoi ? Je réceptionne l'image ? je teste le poids comment ? Je n'y arrive pas. Après il faudra que je test les dimensions et si tout est bon je l'envoie dans un fichier. Bon, mais là j'en suis toujours au même point |
||
|
|
00
|
|
|
#9 | |
|
Inactif
![]() Inscription : septembre 2004 Messages : 11 753 ![]() |
C'est mon point deux, le poids :
Citation:
|
|
|
|
00
|
|
|
#10 | ||
|
Inscrit
Inscription : juin 2006 Messages : 531 ![]() |
Oui, j'ai lu, mais j'ai rien compris.
Ca c'est le code sur la page dont tu indiques le lien : les commentaires sont les miens. Code :
Donc là, je te remercie Kerod pour ce lien, mais j'ai pas avancé d'un pas... |
||
|
|
00
|
|
|
#11 | ||
|
Inactif
![]() Inscription : septembre 2004 Messages : 11 753 ![]() |
Bon on reprend :
Code :
Quand je te disais que tu avais tout dedans. Ps : Le paragraphe que je t'ai donné en lien ne s'arrete pas qu'à ce bout de code |
||
|
|
00
|
|
|
#12 | |||||
|
Inscrit
Inscription : juin 2006 Messages : 531 ![]() |
Citation:
Bon alors, j'ai fait ça : Code :
Bon donc j'arrive à afficher le poids, j'ai donc fait un pas en avant mais franchement c'est gadouilleux. Aussi, si le fichier uploadé à des espace dans son nom, par exemple "mon image.jpg", alors ça n'affiche pas le poids. Mais je pense que je peux changer le nom de fichier en lui attribuant par exemple la valeur de l'id du membre qui uploade. Maintenant, je peux peut-être regarder le code de Gloubi : Code :
|
|||||
|
|
00
|
|
|
#13 |
|
Inactif
![]() Inscription : septembre 2004 Messages : 11 753 ![]() |
Au risque de me répéter :
Pour reprendre le tuto : tmp_name est le nom temporaire du fichier donc si tu veux faire des manipulation sur ce dit fichier c'est lui qu'il faut utiliser. Autre chose, tu souhaites prendre ton image et le mettre dans un fichier ou juste uploader une image sur le serveur ? De toute facon avant de faire tout le reste tu dois utiliser la fonction que je t'ai donné is_uploaded_file. Elle permet de savoir si le fichier est sur le serveur. Pour savoir s'il est complet tu dois utiliser le champ error (voir tuto). et après tu pourras faire tes tests sur le fichier et si tout est ok alors tu pourras utiliser move_uploaded_file. Tu vas pas déplacer un fichier qu in'est pas correct Pour l'espace dans le nom de l'image : ca n'a plus d'importance vu qu'il a un nom temporaire :: tmp_name. Pour finir quand tu sais pas à quoi sert une fonction, tu utilises le manuel sur php.net |
|
|
00
|
|
|
#14 | ||||||||||
|
Inscrit
Inscription : juin 2006 Messages : 531 ![]() |
Citation:
Code :
Citation:
Citation:
Citation:
Citation:
Citation:
En fait je comprend pas la manip. Le gars upload un fichier avec le bouton parcourir. Bon et après ? Le serveur reçoit l'image et la met dans un fichier temporaire. Pourquoi ? Comment ? Et si on fait rien ou si il y a une erreur, il en fait quoi ? Elle est stockée, détruite ? Citation:
Citation:
|
||||||||||
|
|
00
|
|
|
#15 |
|
Inactif
![]() Inscription : septembre 2004 Messages : 11 753 ![]() |
Pour que ce soit constructif, voilà ce qui doit être fait :
A la soumission du formulaire, le fichier est transmis au serveur par la méthode HTTP (en gros c'est un upload sur le serveur). Ce fichier est placé dans un répertoire temporaire, répertoire accessible par le serveur (son nom dépend du serveur, ainsi que son accessibilité). Tout ce dont tu as besoin dans ton cas c'est le lien fournit par $_FILES. Maintenant pour ce qui est du reste :
|
|
|
00
|
|
|
#16 | ||||
|
Inscrit
Inscription : juin 2006 Messages : 531 ![]() |
Bon alors, j'ai essayé ça déjà, pour suivre le tuto :
Code :
Code :
Donc déjà, avant de (re)voir la suite, quelqu'un peut-il m'expliquer cette erreur ? |
||||
|
|
00
|
|
|
#17 |
|
Inactif
![]() Inscription : septembre 2004 Messages : 11 753 ![]() |
move_ uploaded_ file
Si c'est hors www on pourra pas acceder |
|
|
00
|
|
|
#18 |
|
Inscrit
Inscription : juin 2006 Messages : 531 ![]() |
Heureusement que t'es là Kerod.
Bon alors j'ai mis un chemin relatif et c'est bon, ce petit script fonctionne et j'ai regardé dans le ftp de dreamweaver, l'image est arrivée dans le bon dossier. Il me reste à : - changer le nom de l'image pour lui attribuer par exemple le nom image_id_du_membre.jpg. - controler que l'image est jpg, gif, ou un png, ou si c'est possible tout bascule en jpg par exemple. - controler le poids et la taille. Et quand tout ça est fait, alors seulement j'expédie l'image comme je viens de le faire. Déjà pour changer le nom de l'image, je vois pas, puisque pour le peu que j'ai compris, je dois travailler avec le nom temporaire. Je suis pas sorti de l'auberge. |
|
|
00
|
|
|
#19 |
|
Inactif
![]() Inscription : septembre 2004 Messages : 11 753 ![]() |
D'abord il faut controler le poids de l'image soit par :
ou |
|
|
00
|
|
|
#20 |
![]() ![]() Guillaume RossoliniDirecteur technique Inscription : février 2004 Messages : 13 720 ![]() |
Salut
Au risque d'être un peu sec (ce doit être pour lire que mes tutos sont inutiles ), je te propose de bien relire TOUT ce qui t'a été proposé en lien et surtout d'ESSAYER.C'est fondamental, essayer. Cela te permet d'expérimenter, donc d'apprendre par l'expérience. C'est notamment come cela que nous écrivons des tutoriels, en essayant toutes les solutions. En outre, il existe une documentation officielle très bien faite et je te recommande de t'y reporter dès que tu as un doute. Bref, tu as ici tous les éléments pour répondre à ta question. Il faut jute le temps que cela mûrisse
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework) Ressources PHP - Ressources Zend Framework |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com