|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||||
|
Invité de passage
![]() Inscription : mai 2004 Messages : 13 ![]() |
Bonjour,
J’ai un petit problème avec la fonction upload. Ca coince au niveau de l’extension fichier qui me reviens systématiqement pas correcte, je comprend pas. Qui peut m’aider ? Merci, voici ce que j’ai fait. Formulaire d’upload: Code :
Code :
Code :
|
||||||
|
|
00
|
|
|
#2 |
|
Membre actif
![]() Développeur Web Inscription : juillet 2007 Messages : 193 ![]() |
Je n'ai pas trouvé l'erreur mais à votre place j'utiliserai getimagesize() qui renvoie le type mime de l'image. Cette donnnée est beaucoup plus sûr car en testant juste textuellement l'extension un utilisateur pourrait faire passer dans le script n'importe quel type de fichier renommé en .jpg par exemple.
|
|
00
|
|
|
#3 | ||
![]() ![]() Inscription : août 2005 Messages : 8 309 ![]() |
En ce qui concerne la sécurité, voir cette discussion : dans les références indiquées, il y en a une qui dit que getimagesize() peut être trompé. Personnellement, ce que j'ai fait et qui semble plutôt pas mal :
Pour revenir à ton pb, pour vérifier l'extension, je te suggère de faire comme moi : Code :
__________________
![]() Du détail, du détail, du détail !!! Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
|
||
|
|
00
|
|
|
#4 | ||
|
Invité de passage
![]() Inscription : mai 2004 Messages : 13 ![]() |
Merci pour votre aide.
La solution de _Mac_ semble bien fonctionner. Néanmoins, je n'arrive pas encore à l'uploader une image :la vérif extension est ok, la vérif taille fichier est ok, maintenant ca coince au niveau du fichier temporaire temp_name. Vois pas bien ce qu'il faut faire avec temp_name J'ai aussi fais un chmod sur le fichier de destination définitive Merci encore pour votre aide. Code :
|
||
|
|
00
|
|
|
#5 |
![]() ![]() Inscription : août 2005 Messages : 8 309 ![]() |
Ca veut dire quoi exactement ? Quel est le pb exact rencontré ? Il passe dans ton if ? Est-ce que $dossier a bien la bonne valeur ? Est-ce que le répertoire existe bien et que l'utilisateur Apache/PHP peut écrire dedans ?
__________________
![]() Du détail, du détail, du détail !!! Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
|
|
|
00
|
|
|
#6 |
|
En attente de confirmation mail
![]() Inscription : juin 2002 Messages : 6 164 ![]() |
Je rappelle que le protocole HTTP (pour PHP du moins), n'est pas utilisable en écriture ! Votre chemin de destination (http//www.monsite.com/images/) est donc incorrect et la fonction move_uploaded_file doit d'ailleurs générer un message d'erreur à ce sujet.
|
|
|
00
|
|
|
#7 | ||
|
Invité de passage
![]() Inscription : mai 2004 Messages : 13 ![]() |
@ julp, Merci c'était bien ca.
Encore un ptit blème quand même. Que j'essaye ca OU ca, j'uploalde ARRAY... Pourquoi ? Merci Code :
|
||
|
|
00
|
|
|
#8 |
|
En attente de confirmation mail
![]() Inscription : juin 2002 Messages : 6 164 ![]() |
Parce que la variable $fichier est maintenant un tableau :
Code :
$fichier = pathinfo($_FILES[$champFile]['name']); Code :
$fichier = basename($_FILES[$champFile]['name']); Vous auriez pu être plus direct : Code :
$extension = strtolower(pathinfo($_FILES[$champFile]['name'], PATHINFO_EXTENSION)); |
|
|
00
|
|
|
#9 |
|
Invité de passage
![]() Inscription : mai 2004 Messages : 13 ![]() |
@ Julp Ok Merci.
Mais qu'est qui n'est pas bon dans l'appel move_uploaded_file et chmond si j'appelle un tableau au lieu d'une chaine J'ai indiqué le filename et la destination : ( string $filename , string $dossier ) et le chmod, normalement c'est bien ce qu'il faut faire... J'ai cherhcé dans la doc Php mais J'vois pas ce qui faut faire |
|
|
00
|
|
|
#10 |
![]() ![]() Inscription : août 2005 Messages : 8 309 ![]() |
J'ai rien compris
![]() Dans un move_uploaded_file, la cible, c'est pas que le dossier, c'est le dossier + le nom du fichier définitif.
__________________
![]() Du détail, du détail, du détail !!! Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
|
|
|
00
|
|
|
#11 | |||||||||
|
En attente de confirmation mail
![]() Inscription : juin 2002 Messages : 6 164 ![]() |
Citation:
Pour corriger, je vous ai donné une solution pour conserver votre code "initial". Sinon vous devrez renommer vos variables ou modifier les lignes que j'ai indiqué. Solution 1, à partir du code initial : Code :
Code :
Code :
Code :
|
|||||||||
|
|
00
|
|
|
#12 |
|
Invité de passage
![]() Inscription : mai 2004 Messages : 13 ![]() |
@ Julp : MERCI !
Merci aussi pour l'explication et la démonstration magistrale Merci aussi à _Mac_ Pour ceux que cela peut aider : la solution 2 de Julp est la meilleure. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com