Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Général Conception Web > Webdesign & Ergonomie
Webdesign & Ergonomie Forum d'entraide Webdesign & Ergonomie : les bonnes pratiques de conception des sites web
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/11/2006, 15h50   #1
lr
Membre du Club
 
Inscription : octobre 2003
Messages : 329
Détails du profil
Informations forums :
Inscription : octobre 2003
Messages : 329
Points : 69
Points : 69
Envoyer un message via ICQ à lr
Par défaut [Ergonomie] Valider des fichiers avant l'upload

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
lr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2006, 16h08   #2
Inactif
 
Avatar de CR_Gio
 
Inscription : septembre 2005
Messages : 1 196
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 1 196
Points : 1 201
Points : 1 201
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 ...
CR_Gio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2006, 10h10   #3
lr
Membre du Club
 
Inscription : octobre 2003
Messages : 329
Détails du profil
Informations forums :
Inscription : octobre 2003
Messages : 329
Points : 69
Points : 69
Envoyer un message via ICQ à lr
Citation:
Envoyé par CR_Gio
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 ...
Merci pour ta réponse,

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 ?
lr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2006, 11h56   #4
Rédacteur
 
Avatar de MasterOfChakhaL
 
Homme
Développeur Web
Inscription : juin 2004
Messages : 2 148
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 32
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : Conseil

Informations forums :
Inscription : juin 2004
Messages : 2 148
Points : 2 628
Points : 2 628
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!
MasterOfChakhaL est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2006, 11h59   #5
lr
Membre du Club
 
Inscription : octobre 2003
Messages : 329
Détails du profil
Informations forums :
Inscription : octobre 2003
Messages : 329
Points : 69
Points : 69
Envoyer un message via ICQ à lr
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.
lr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2006, 11h29   #6
Membre chevronné
 
Avatar de cadoudal56
 
Inscription : février 2005
Messages : 671
Détails du profil
Informations personnelles :
Âge : 40

Informations forums :
Inscription : février 2005
Messages : 671
Points : 646
Points : 646
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
cadoudal56 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2006, 11h47   #7
lr
Membre du Club
 
Inscription : octobre 2003
Messages : 329
Détails du profil
Informations forums :
Inscription : octobre 2003
Messages : 329
Points : 69
Points : 69
Envoyer un message via ICQ à lr
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
lr est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h21.


 
 
 
 
Partenaires

Hébergement Web