|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre du Club
![]() |
Salut,
Je bosse sur une application PHP qui propose une fonctionnalité d'upload pour que les utilisateurs puissent envoyer des fichiers sur le serveur. Les fichiers peuvent être de plusieurs types (documents textes, images etc.) et je dois faire certaines vérifications avant de les exploiter : - pas trop lourds (espace disque) - pas trop grands (largeur, hauteur dans le cas des images) Je suis assez confiant sur la faisabilité de ça en PHP (mais si vous avez des liens, ça me fera gagner du temps) mais ce qui m'interroge plus, c'est sur les solutions pour tester avant l'upload. En effet, ce n'est pas très rationnel que mon application télécharge un fichier de plusieurs mégas pour ensuite vérifier son poids et dire à l'utilisateur "désolé, tu as attendu dix minutes devant ton écran pour rien, ton fichier est trop gros et je ne peux pas l'accepter". Est-ce possible, en javascript ou autre, d'obtenir des infos sur le fichier sélectionné avant qu'il soit envoyé en POST ? Merci d'avance Lilian |
|
|
00
|
|
|
#2 |
|
Inactif
Inscription : septembre 2005 Messages : 1 196 ![]() |
Salut,
Avec flash 8, il me semble que c'est possible. en javascript je croi savoir que ce n'est pas possible. sinon il reste java ... (pour moi ca s'arrete là) Mais dans tout les cas,comme tu l'as dit, ca ne te dispense pas de verifier ensuite coté server ... |
|
|
00
|
|
|
#3 | |
|
Membre du Club
![]() |
Citation:
malheureusement on ne va pas pouvoir introduire de flash, ni de java coté client dans ce projet... Mais d'après ma compréhension, on spécifie un chemin de fichier dans un champs "file". Quand on fait submit, le browser va lire le fichier sur le disque de l'utilisateur puis il génère une requête POST qu'il envoie au serveur. Il n'y a pas de moyen d'interférer là-dedans en javascript ? |
|
|
|
00
|
|
|
#4 |
![]() Développeur Web Inscription : juin 2004 Messages : 2 148 ![]() |
Salut,
Le javascript ne peux pas manipuler les fichiers du client (question de sécurité). De toutes façons, si tu veux faire quelque chose de sérieux, il faut partir du principe que le client peut faire n'importe quoi (intentionnellement ou pas) et que tu ne peux pas te passer d'une validation côté serveur. Il serait donc plus logique de t'interesser d'abord à la validation côté serveur. La validation côté client ne peut être vu que comme un élément d'ergonomie, pas comme une fonctionnalité dont tu as besoin pour faire tourner ton appli.
__________________
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ N'oubliez pas de cliquer sur quand votre question à trouvé une solution.Si vous n'avez pas encore lu les règles du club, mieux vaut tard que jamais! |
|
|
00
|
|
|
#5 |
|
Membre du Club
![]() |
Merci, et oui, il est évident que les validations doivente de toute façon se faire au niveau du serveur. Je suis déjà en train d'y travailler.
Par contre, dans ce cas précis, une validation coté client aurait vraiment du sens vu qu'on parle de transfert de fichiers. |
|
|
00
|
|
|
#6 |
|
Membre chevronné
![]() Inscription : février 2005 Messages : 671 ![]() |
Hello,
J'ai bossé sur ce type de problematique il y a longtemps mais c'était en perl... Pour commencer, tu peux déja tester avec javascript l'extension du fichier qui se trouve dans le champ..... Par exemple, si c'est du txt c'est OK, si c'est du ZIP message d'alerte Toujours en javascript, tu peux bosser sur le nom du fichier... Pas d'espace pas d'accents, pas de caractères interdit... Si pas bon, message d'alerte Ensuite sur les questions de poids, il me semble que PHP peut déterminer le poids du fichier avant qu'il ne soit télécharger sur le serveur. Il me semble que c'est possible car chaque fichier a dans son entete les définitions qui le caractérise.... Mais bon si tu es un peu perdu, et- que comme moi tu penses qu'il est inutile de réinventer la roue, je te conseille de jeter un oeuil sur les sources d'un logiciel libre en PHP qui gère bien le téléchargement... Tu l'installes et tu t'inspires de son code.... Le premier système qui me vient a l'esprit et qui remplis tous ces criteres c'est Coppermine Photos Gallery..... Le must pour la gallerie de Photos/Fichiers (gère pleins de types de fichiers et de contenus). @+ cadou |
|
|
00
|
|
|
#7 |
|
Membre du Club
![]() |
Merci pour ta réponse,
En effet je peux checker certains choses sur le nom du fichier mais ça ne suffit pas Sinon effectivement, je crois l'en-tête HTTP générée par le browser contient une donnée qui indique la taille des données transférées par POST. Donc en théorie je devrais pouvoir interrompre le téléchargement si cette taille dépasse un certain seuil. Mais le problèmem c'est que là, ce n'est pas encore PHP, c'est apache qui traîte le transfert en HTTP avant de donner la main. Mon script PHP n'est appelé qu'une fois le transfert terminé (enfin d'après ce que j'ai compris). Je vais tout de même jeter un oeil à Coppermine Photos Gallery, merci |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com