Page 1 sur 1

upload de fichier et diaporama

Posté : 27 oct. 2006, 16:11
par BeRoots
salut à tous :)

je bosse actuellement sur un diaporama en php avec lequel un upload d'image est associé.

j'ai lu le tuto sur le site et qui parle de l'upload mais j'ai encore pas mal de question à ce sujet...

1°) peut on uploader plusieur image via un seul champ de formulaire? (dans le tuto c'est un champ de formulaire pour chaque fichier uploader, mais j'aimerai pouvoir uploader plusieur fichier selectionner via un même champs)

2°) est il possible de définir automatiquement si l'image uploader est un paysage ou un portait? (width < height ou height < width. c'est car je doit enregistrer les balise img en db et mettre à jour l'id pour le css afin de choisir si c'est un portait ou un paysage)

3°) est il possible de stocker directement l'image en db? (le fichier)

bon je croit que sa ferra déja pas mal de qestion pour commencer :?

merci d'avance pour vos réponse ;)

Re: upload de fichier et diaporama

Posté : 27 oct. 2006, 16:45
par naholyr
1°) peut on uploader plusieur image via un seul champ de formulaire? (dans le tuto c'est un champ de formulaire pour chaque fichier uploader, mais j'aimerai pouvoir uploader plusieur fichier selectionner via un même champs)
Il faut simplement ajouter autant de champs de type "file". Les fichiers seront accessibles côté script par $_FILES['nomduchamp'].
2°) est il possible de définir automatiquement si l'image uploader est un paysage ou un portait? (width < height ou height < width. c'est car je doit enregistrer les balise img en db et mettre à jour l'id pour le css afin de choisir si c'est un portait ou un paysage)
Il est vital d'être sûr qu'on t'a bien envoyé une image. Tu peux faire d'une pierre deux coups avec getimagesize() (lis la doc ils donnent un exemple d'utilisation) qui va te renvoyer la taille de l'image, mais également le type. Tu pourras donc accepter/refuser le fichier en fonction du type retourné par cette fonction.
3°) est il possible de stocker directement l'image en db? (le fichier)
C'est une mauvaise idée, on ne stocke pas des fichiers en db en général on stocke le chemin. En effet le stockage en bdd d'informations lourdes va rapidement dégrader les performances de l'application.

Posté : 27 oct. 2006, 17:11
par BeRoots
merci pour ces renseignement ;)

si je comprend bien: 1 fichier uploader = 1 champs de formulaire
1°) y'a vraiment pas moyen de faire en sorte d'uploader une serie de fichier via le même champ? (genre tout un repertoire)

je pense à un truc niveau securité... si le hacker upload un fichier du style image.exe.jpg

2°) est ce que le fichier va etre détecter comme un fichier autre qu'une image via getimagesize()?

3°) et si l'image uploader est un virus ou un fichier malicieux cacher dans une image, comment s'en apercevoir?

Posté : 27 oct. 2006, 17:41
par naholyr
1°) y'a vraiment pas moyen de faire en sorte d'uploader une serie de fichier via le même champ? (genre tout un repertoire)
Négatif.
2°) est ce que le fichier va etre détecter comme un fichier autre qu'une image via getimagesize()?
Je ne sais pas si cette fonction vérifie l'extension du fichier, mais en tous cas elle vérifie le contenu du fichier, donc s'il te le détecte comme une image, avec une taille définie, alors tu es sûr que c'est une image. Tu peux même après vérifier que l'extension correspond au type annoncé. Si aucun type n'est trouvé, ou que les dimensions sont invalides, alors tu rejettes le fichier.
3°) et si l'image uploader est un virus ou un fichier malicieux cacher dans une image, comment s'en apercevoir?
On ne peut pas, à moins d'avoir un anti-virus sur le serveur et de scanner le fichier avant de le conserver. Quoi qu'il arrive un virus dans une image ne fera pas beaucoup de mal, à part la faille IE dans les .png je n'ai jamais vu de virus passer par les images.

Re: upload de fichier et diaporama

Posté : 28 oct. 2006, 18:45
par petitchevalroux
1°) peut on uploader plusieur image via un seul champ de formulaire?
En théorie non, en pratique tu peux le faire en utilisant les fonctions Zlib pour php (encore faut t'il quelles soient activer chez ton hébergeur) et en passant des fichiers archive (aprés c'est une piste pas un solution, d'ailleur si tu t'y penches je suis preneur :wink:).
2°) est il possible de définir automatiquement si l'image uploader est un paysage ou un portait?
oui via getimagesize (comme tu l'avais deviné)
Pour ton problème de type de fichier virus ... regarde du cotés de mime-content-type qui te permet de te basé sur le type mime du fichier pas sur son extension. Donc tu as plus qu'a verifier le type mime.
3°) est il possible de stocker directement l'image en db?
oui dans un blob ou text

Posté : 01 nov. 2006, 01:32
par BeRoots
Ok j'ai bien regarder et je ne pense pas avoir d'autre question à ce sujet pour l'instant. :?

@petitchevalroux: désolé mais je ne vais pas pouvoir me pencher sur le problème de Zlib pour le moment car mon hébergeur ne me le propose pas :(

encore merci à tous pour vos réponse ;)