PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e WINDEV Mobile

Inicio → WEBDEV 2024 → [WD9] Taille d'une image
[WD9] Taille d'une image
Iniciado por Jim R, jan., 24 2005 11:07 AM - 12 respostas
Publicado em janeiro, 24 2005 - 11:07 AM
Bonjour,
quelle méthode utiliser pour vérifier les tailles d'une image (à uploader) ?
Merci d'avance,
Cordialement
Jim
Publicado em janeiro, 24 2005 - 2:13 PM
Salut,

un exemple de fonction pour limiter l'upload d'une image dont la taille est supérieure à 200Ko :

PROCEDURE isTailleValide(maPhoto)

// 1 Ko = 1024 octets
SI PAS fTaille(maPhoto)<= 200*1024 RENVOYER Faux
RENVOYER Vrai

@+

PJ
Publicado em janeiro, 24 2005 - 4:25 PM
PJ a exprimé avec précision :
Salut,

un exemple de fonction pour limiter l'upload d'une image dont la taille est
supérieure à 200Ko :

PROCEDURE isTailleValide(maPhoto)

// 1 Ko = 1024 octets
SI PAS fTaille(maPhoto)<= 200*1024 RENVOYER Faux
RENVOYER Vrai

@+

PJ


Peux-tu tu nous dire si cette fonction ne marche qu'avec WD9 ?

car l'upload posait jusqu'à présent un problème; on ne pouvait tester
la taille "à priori" pour avertir l'internaute de l'impossibilité de
son chargement. Pire meme, un upload d'un fichier trop gros ne
provoquait aucune erreur et le fichier était tronqué sans que l'on
puisse monitorer cela.

Donc si ce que tu dis est possible, c'est donc une nouveauté.

--
Eric
Webmaster des Wtablettes
www.wtablettes.net
Publicado em janeiro, 24 2005 - 5:22 PM
Merci de ta réponse PJ , mais ce que je cherche c'est la hauteur et la largeur de l'image (pour ne pas avoir de souçis d'affichage ensuite) et non pas la taille sur le disque.
Publicado em janeiro, 24 2005 - 5:51 PM
Salut,

Je ne sais pas si c'est une nouveauté mais je viens à l'instant de tenter un upload d'une fausse image de plus de 300Mo alors que seulement 200Ko me sont permis, et la fonction isTailleValide() a parfaitement fonctionné (J'utilise actuellement WB9023g.)

J'avais implémenté cette fonction avec la version 7 de WB. Elle fonctionnait parfaitement avec des fichiers images dont la taille était sensiblement supérieure à 200Ko. En fait, je n'ai jamais pensé essayer avec des fichiers plus gros...

@+

PJ
Publicado em janeiro, 24 2005 - 6:26 PM
OK Jim,
Avec l'instruction InfoBitMap() tu devrais pouvoir t'en sortir alors. Regarde dans l'aide.

@+

PJ
Publicado em janeiro, 24 2005 - 6:46 PM
Il se trouve que PJ a formulé :
Salut,

Je ne sais pas si c'est une nouveauté mais je viens à l'instant de tenter un
upload d'une fausse image de plus de 300Mo alors que seulement 200Ko me sont
permis, et la fonction isTailleValide() a parfaitement fonctionné (J'utilise
actuellement WB9023g.)

J'avais implémenté cette fonction avec la version 7 de WB. Elle fonctionnait
parfaitement avec des fichiers images dont la taille était sensiblement
supérieure à 200Ko. En fait, je n'ai jamais pensé essayer avec des fichiers
plus gros...


Attends ! On parle bien d'upload ?? pas de download.

Je veux que mes internautes chargent sur mon serveur un document ou un
fichier.
Donc je leur propose un champs upload pour qu'ils sélectionnent sur
leur disque un fichier, puis ce fichier est transféré sur le serveur
(pour un traitement quelconque).
Comment connaître la taille du fichier avant téléchargement ? pas
après, ça c'est sûr qu'une fois sur le serveur, on peut agir.

Et bien ça ce n'était pas possible en WW7. (ou alors personne n'a
jamais réagi aux posts qui en parlaient.)




@+

PJ


--
Eric
Webmaster des Wtablettes
www.wtablettes.net
Publicado em janeiro, 24 2005 - 6:56 PM
PJ a couché sur son écran :
J'avais implémenté cette fonction avec la version 7 de WB. Elle fonctionnait
parfaitement avec des fichiers images dont la taille était sensiblement
supérieure à 200Ko. En fait, je n'ai jamais pensé essayer avec des fichiers
plus gros...


Pas besoin de tester bien loin.
La fonction ftaille n'est pas dispo en code Navigateur
Et c'est donc qu'on ne peut réagir qu'une fois le fichier sur le
serveur.

Attention de ne pas confondre le fait que cela marche sur ta machine de
dev car tu es à la fois une machine cliente et une machine serveur.
En d'autres termes, tu accèdes à ton fichier en mode serveur car c'est
le meme disque qu'en mode client.
Mais ce ne sera pas la mème médecine en Prod.

Désolé d'insister, mais j'ai tellement cherché sur ce truc que je
permet de réagir.
Donc est-ce enfin réellement possible ?

Parce que en ce moment, j'estime qu'il y a un vrai pb sur les champs
upload car non seulement on ne peut contrôler la taille des fichiers
avant transfert, mais surtout en cas de fichiers trop gros, cela
tronque sans aucune alerte ... d'où des traitements derrières erronés.

@+

PJ


--
Eric
Webmaster des Wtablettes
www.wtablettes.net
Publicado em janeiro, 25 2005 - 10:29 AM
Bonjour,

On parle bien d'Upload et je reconnais l'avoir essayé uniquement en mode test sur ma machine de dev. Toutefois, je ne vois pas pourquoi cela ne marcherait pas en prod...

En tout cas, fTaille() effectue bien le test demandé avant l'Upload. Le temps de traitement du fichier selectionné est proportionnel à sa taille et en effet tout ceci est traité en cache côté serveur. La seule inquiétude que j'ai à ce sujet est le TimeOut que je n'ai pas testé en réel. Le reste fonctionne parfaitement. Comme tu le dis, le bug a peut-être été corrigé pour la version 9, je ne sais pas...

Si ça t'interresse, je vais essayer de trouver le temps pour t'envoyer un mini projet concernant l'Upload et le fTaille(), comme ça tu verras comment j'ai procédé.

@+

PJ
Publicado em janeiro, 25 2005 - 12:38 PM
Merci pour vos aides je vais essayer cet après midi et j'vous tiendrais au courant
Publicado em janeiro, 25 2005 - 4:11 PM
PJ avait écrit le 25/01/2005 :
Bonjour,

On parle bien d'Upload et je reconnais l'avoir essayé uniquement en mode test
sur ma machine de dev. Toutefois, je ne vois pas pourquoi cela ne marcherait
pas en prod...


Parce que en prod, il va chercher ton disque c:\Mes documents\... (par
exemple)
et il ne trouveras pas le fichier que tu désires uploader pour
retourner la valeur ftaille.


En tout cas, fTaille() effectue bien le test demandé avant l'Upload. Le temps
de traitement du fichier selectionné est proportionnel à sa taille et en
effet tout ceci est traité en cache côté serveur. La seule inquiétude que
j'ai à ce sujet est le TimeOut que je n'ai pas testé en réel. Le reste
fonctionne parfaitement. Comme tu le dis, le bug a peut-être été corrigé pour
la version 9, je ne sais pas...

Si ça t'interresse, je vais essayer de trouver le temps pour t'envoyer un
mini projet concernant l'Upload et le fTaille(), >comme ça tu verras comment
j'ai procédé.


Okay, meme si je t'avoue que je suis pessimiste quand aux résultats.
Pourquoi ?
Ftaille donne bien la taille d'un fichier dont on donne le chemin
complet ? Oui
Ce fichier est bien à l'origine sur le poste client ? Oui
un traitement serveur ne peut accèder aux données du poste client ? oui
donc il ne pourra faire jouer ftaille que sur un chemin atteignable par
le serveur c.a.d. par sur le client.


@+

PJ


--
Eric
Webmaster des Wtablettes
www.wtablettes.net
Publicado em janeiro, 26 2005 - 5:42 PM
Bonjour,

Je vois que le debat continue.

j'y vais de mon eau au moulin:
j'ai implémenté cette fonction dans un de mes prog.
ça marche super bien... pour les fichiers < 4 G soit la limite de l'upload:
explication: le fichier est bien telechargé et la fonction me donne la taille aprés!
donc j'ai bossé pour rien puisque je ne suis pas capable de dire à l'utilisateur stop
au contraire, puisque le fichier est tronqué, je laisse faire et je pense que tout est bon.

par contre bémol positif, on peut mettre une limite supérieure bien + haute et refuser les fichiers aprés l'uplaod... peu utile si on ne voulait simplement empecher le chargement pour eviter de le faire à perte.

(à moins que cela ai changé sur la version 9 je ne l'ai pas testé sur cette version.)

jean daniel
Publicado em janeiro, 26 2005 - 8:04 PM
jean-daniel a utilisé son clavier pour écrire :
Bonjour,

Je vois que le debat continue.


Ben Ouaih !
parce qu'il y a un vrai malaise là


j'y vais de mon eau au moulin:
j'ai implémenté cette fonction dans un de mes prog.
ça marche super bien... pour les fichiers < 4 G soit la limite de l'upload:
explication: le fichier est bien telechargé et la fonction me donne la taille
aprés!


ça c'est sur, sur le serveur il Peut !

donc j'ai bossé pour rien puisque je ne suis pas capable de dire à
l'utilisateur stop au contraire, puisque le fichier est tronqué, je laisse
faire et je pense que tout est bon.


c'est là que c'est grave.

par contre bémol positif, on peut mettre une limite supérieure bien + haute
et refuser les fichiers aprés l'uplaod... peu utile si on ne voulait
simplement empecher le chargement pour eviter de le faire à perte.


Ou empecher des petits rigolos de faire tomber ton site avec des gros
upload.


(à moins que cela ai changé sur la version 9 je ne l'ai pas testé sur cette
version.)

jean daniel


--
Eric
Webmaster des Wtablettes
www.wtablettes.net