PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e WINDEV Mobile

Inicio → WEBDEV 2024 → Fichiers en téléchargement
Fichiers en téléchargement
Iniciado por Olivier DEVILLERS, set., 27 2005 1:09 PM - 18 respostas
Publicado em setembro, 27 2005 - 1:09 PM
Bonjour,

Sur mon site en WB9 j'ai un espace téléchargements.
Tout fonctionne bien avec des fichiers de petite taille (jusqu'à 5mo
environ) mais des que je veux mettre en téléchargement des fichiers de
taille + importante (15mo ou 40 mo) les internaute ont le message "time out
............"

y a t-il une limitation dans la taille des fichiers téléchargeable ou bien
une astuce que je n'ai pas vu dans l'aide ?

merci pour vos réponses
Publicado em setembro, 27 2005 - 12:31 PM
Salut,

J'ai également rencontré ce problème. En fait voila ce qui est noté dans l'aide de WebDev :


Limites

La taille d'un fichier uploadé ne peut dépasser 4 Mo.

Pour modifier cette taille, il est nécessaire de modifier la base de registres sur le serveur.


1. Pour modifier la taille des fichiers uploadés :

pour toutes les applications WebDev 9, sélectionnez la clé : HKEY_LOCAL_MACHINE\SOFTWARE\PC SOFT\WEBDEV\9.0

pour une application WebDev 9, sélectionnez la clé : HKEY_LOCAL_MACHINE\SOFTWARE\PC SOFT\WEBDEV\9.0\Applications\<NomApplication>

2. Ajoutez la chaîne MAX_UPLOAD. Cette chaîne aura pour valeur la taille maximale des fichiers à uploader (en Ko).


J'ai déjà passé du temps à esseyer de trouver une solution pour vérifier la taille du fichier à uploader avant de l'envoyer, mais je n'y suis pas arrivé. A mon avis ça ne dois pas être possible car la focntion ftaille() n'est disponible qu'en code serveur et donc pour pouvoir l'utiliser, il faut que le fichier soit sur le serveur ...
Publicado em setembro, 27 2005 - 4:13 PM
Effectivement tu as raison Seb, la prochaine fois je relierai 2 fois avant de répondre :P
Publicado em setembro, 27 2005 - 5:17 PM
Salut,

J'ai également rencontré ce problème. En fait voila ce qui est noté dans

l'aide de WebDev :


Limites

La taille d'un fichier uploadé ne peut dépasser 4 Mo.

Pour modifier cette taille, il est nécessaire de modifier la base de

registres sur le serveur.

Bonjour,
je pense que l'un parle de download et l'autre d'UPLOAD.
Dans les deux cas il faut aussi régler le TIMEOUT du serveur Webdev
==> La session se ferme avant que le fichier soit téléchargé
Problème : si c'est un serveur mutualisé, le Timeout est réglable par
hébergeur
pour tous les sites présents sur le serveur.

Sébastien
Publicado em setembro, 27 2005 - 8:58 PM
Merci pour ta réponse.
En effet je parle bien de Downloads

Je vais me renseigner auprès de mon hébergeur donc !

"sebNews" <seb@yahoo.fr> a écrit dans le message de news:
43393231$1@news.pcsoft.fr...


Salut,

J'ai également rencontré ce problème. En fait voila ce qui est noté dans
l'aide de WebDev :



Limites

La taille d'un fichier uploadé ne peut dépasser 4 Mo.

Pour modifier cette taille, il est nécessaire de modifier la base de
registres sur le serveur.


Bonjour,
je pense que l'un parle de download et l'autre d'UPLOAD.
Dans les deux cas il faut aussi régler le TIMEOUT du serveur Webdev
==> La session se ferme avant que le fichier soit téléchargé
Problème : si c'est un serveur mutualisé, le Timeout est réglable par
hébergeur
pour tous les sites présents sur le serveur.

Sébastien


Publicado em setembro, 28 2005 - 10:03 AM
Il y a bien un problème pour les fichiers en download à partir d'une certaine taille et cela me pose aussi un problème

Ce problème ne se pose pas sur un lien statique (un lien qui pointe directement sur un fichier)

Il se pose sur une action du serveur, du genre FichierAffiche (CheminFichier, "application/unknown", NomFichier) appelé par exemple à partir d'une liste ou d'une table.

On a l'impression qu'une action est effectuée sur le serveur avant que le téléchargement ne commence (est-ce la recopie du fichier dans une zone tampon ?). Quand le fichier est trop gros, l'action du serveur dépasse le timeout (90s).

Si qq a une solution, je suis preneur (genre affecter le chemin du fichier à un lien statique invisible et simuler un clic sur ce lien)

Matthieu J
Publicado em setembro, 28 2005 - 12:05 PM
"Olivier DEVILLERS" <olivier.devillers@cegetel.net> a écrit dans le message
de news:433965f6$1@news.pcsoft.fr...
Merci pour ta réponse.
En effet je parle bien de Downloads

Je vais me renseigner auprès de mon hébergeur donc !


Tiens nous au courant de la réponse de ton hébergeur.
C'est un problème qui intéresse pas mal de monde

Sébastien
Publicado em setembro, 28 2005 - 12:31 PM
Salut,

et ben, tu dois pas aller sur les WTablettes toi....
Dessus, il y a une procédure FichierAffiche perso que j'ai écrite et qui comble justement ce problème de taille (c'est
le cas de le dire d'ailleurs).
Essaye avec et tiens-nous au courant.

Bon dev,

Olivier

Matthieu a énoncé ce jour :

Il y a bien un problème pour les fichiers en download à partir d'une certaine taille et cela me pose aussi un problème

Ce problème ne se pose pas sur un lien statique (un lien qui pointe directement sur un fichier)

Il se pose sur une action du serveur, du genre FichierAffiche (CheminFichier, "application/unknown", NomFichier)
appelé par exemple à partir d'une liste ou d'une table.

On a l'impression qu'une action est effectuée sur le serveur avant que le téléchargement ne commence (est-ce la
recopie du fichier dans une zone tampon ?). Quand le fichier est trop gros, l'action du serveur dépasse le timeout
(90s).

Si qq a une solution, je suis preneur (genre affecter le chemin du fichier à un lien statique invisible et simuler un
clic sur ce lien)

Matthieu J



Publicado em setembro, 29 2005 - 8:29 AM
Hello Olivier,

Si, si, bien sur que je vais voir les WTablettes

J'avais même en tête ton développement mais je ne l'avais pas testé à l'époque car je me rappelais d'une limite de 10 Mo, et les fichiers que je propose en download font entre 4 Mo et 52 Mo

Mais tu as raison, je vais y retourner et la tester

Merci et a+
Matthieu J
Publicado em setembro, 29 2005 - 12:11 PM
Salut Matthieu,

Testes, testes ;-)

En fait, la limite de 10Mo n'est pas tout à fait exacte... La limite véritable de cette fonction se situe dans la RAM du
serveur ou de la machine sur laquelle elle va tourner car
le fichier entièrement est placé en mémoire.

Personnelement, je dirais que jusqu'à 100 - 150 Mo ça va aller (si il y a assez de mémoire). J'avais fait quelques tests
mais je ne l'utilise que pour des fichiers beaucoup plus petits donc essayes...

Ceci étant, le but de la procédure que j'ai développé ou de celle de WebDev qui bug (un incident a été ouvert à ce
propos : 45001) n'est pas de faire du volume. C'est pour transféré un fichier de manière sécurisé (comprendre sans lien
statique).
Donc, je pense que jusqu'à la limite dont je parlais, ça va. Au-delà, il faut voir une autre façon de faire.

Tiens-nous au courant de tes test STP:

Bon dev,

Olivier

Matthieu a écrit :

Hello Olivier,

Si, si, bien sur que je vais voir les WTablettes

J'avais même en tête ton développement mais je ne l'avais pas testé à l'époque car je me rappelais d'une limite de 10
Mo, et les fichiers que je propose en download font entre 4 Mo et 52 Mo

Mais tu as raison, je vais y retourner et la tester

Merci et a+
Matthieu J


Publicado em setembro, 29 2005 - 2:11 PM
Bonjour

Au fait, est ce que quelqu'un sait ce que fait exactement chaineaffiche ?

Pour etre sur que ca marche sur les gros fichiers, ne serait il pas possible de faire un truc du genre :

// définition du transfert en mode chunked dans le header http
ChaineAffiche("Transfert-encoding: chunked\n")
ChaineAffiche("\n")
// data http en chunked= taille_hexa_data\n data \n
pour chaque <bloc> du fichier :
chaineaffiche("<taille_du_bloc en héxa>\n")
chaineaffiche("<bloc>")
chaineaffiche("0\n")

en théorie ca pourrait marcher...
non ???
Publicado em setembro, 29 2005 - 2:23 PM
J'ai testé...
Et j'ai adopté

Merci beaucoup pour cette routine qui me permet sans problème de télécharger des fichiers jusqu'à 60 Mo

Je conseille à tout le monde de l'utiliser

Par contre (est-ce un oubli ?), il faut ajouter un ";" à la fin de la chaine sinon le nom du fichier n'est pas proposé
Ce donne donc pour la dernière ligne :
ChaîneAffiche(sBuffer, TypeMime + NomFichier + ";")

Merci encore
Matthieu J
Publicado em setembro, 29 2005 - 4:53 PM
Salut,

piste intéressante ;-)

Pour ce que fait ChaineAffiche, c'est expliqué dans l'aide.
Par contre, on peut compléter en disant que la partie TypeMime étant une information d'en-tête, on peut par ce biais
ajouter l'entete que l'on veut. Attention à bien prendre soin de séparer les en-tetes apr RC.
Pour exemple, regarde dans la procédure des WTablettes que j'ai publié, la partie "Content-Disposition... est un en-tete
ajouté.

Pour le code ci-dessous :
ChaineAffiche -> Affiche en une fois le contenu Buffer ou Chaine envoyé donc seul le premier appel sera transmis.
Workarround : Construire la chaine ou buffer dans une variable.

Tes "\n" vont être envoyé en texte littéral. Envoi plutôt le caractère ASCII.

Ceci étant, fais des tests avec la procédure que j'ai publié mais comme je l'ai dit précédement c'est pas le but de
surcharger la mémoire des serveurs avec des fichiers énormes. Je crois que si on va jusqu'à 100 - 150Mo maxi c'est déjà
suffisament important.

Pour des fichiers plus gros, je conseille de faire autrement 2 plusieurs raisons :
- Mémoire utilisé sur le serveur.
- Transfert important = temps de transfert important -> non compatible avec les timeout de session pour des liaisons
lentes (en intranet, ça doit aller).

On peut discuter de pistes si ça intéresse certains d'entre vous.

Bon dev,

Olivier

Patrice a énoncé :

Bonjour

Au fait, est ce que quelqu'un sait ce que fait exactement chaineaffiche ?

Pour etre sur que ca marche sur les gros fichiers, ne serait il pas possible de faire un truc du genre :

// définition du transfert en mode chunked dans le header http
ChaineAffiche("Transfert-encoding: chunked\n")
ChaineAffiche("\n")
// data http en chunked= taille_hexa_data\n data \n
pour chaque <bloc> du fichier :
chaineaffiche("<taille_du_bloc en héxa>\n")
chaineaffiche("<bloc>")
chaineaffiche("0\n")

en théorie ca pourrait marcher...
non ???
Publicado em setembro, 29 2005 - 5:04 PM
de rien..
Tant mieux ;-) hehe

Concernant le ";", pour ma part j'ai bien le nom qui est proposé. Peux-tu détailler le cas STP ?
Sinon, il ne semble pas poser de problème donc pourquoi pas :-)

Bon dev,

Olivier

Matthieu a annoncé :

J'ai testé...
Et j'ai adopté

Merci beaucoup pour cette routine qui me permet sans problème de télécharger des fichiers jusqu'à 60 Mo

Je conseille à tout le monde de l'utiliser

Par contre (est-ce un oubli ?), il faut ajouter un ";" à la fin de la chaine sinon le nom du fichier n'est pas proposé
Ce donne donc pour la dernière ligne :
ChaîneAffiche(sBuffer, TypeMime + NomFichier + ";")

Merci encore
Matthieu J



Publicado em setembro, 29 2005 - 11:06 PM
Ben le problème, c'est que sans le ";", le nom du fichier proposé sera par exemple "CATOGZ55." à la place du "NomDuFichier.pdf" que j'avais indiqué

Je suis étonné que tu ne reproduises pas cela (j'utilise application/unknown)

Après des recherches sur Internet, il semble que le ";" fasse partie de la syntaxe classique. En tout cas, cela fonctionne et c'est le principal

A+
Matthieu J
Publicado em setembro, 30 2005 - 11:40 AM
Salut,

je comprends bien mais décidément, je n'arrive pas à reproduire ce cas... et j'aimerais bien....
En utilisant la syntaxe pFichierAffiche(NomFichier, "application/unknown", fExtraitChemin(NomFichier,
fFichier+fExtension ))
IE me propose toujours l'enregistrement du fichier (ce que je veux) avec le bon nom !
Effectivement, si j'utilise la syntaxe pFichierAffiche(NomFichier, "application/unknown"), ce qui ouvre le fichier dans
IE : là, le nom du fichier si on fait "Enregistrer sous..." est faux ! Mais qu'il y ait le ";" ou pas, ça ne change
rien.
Sous FireFox, c'est différent... j'ai toujours le bon nom.

Quel serveur web utilises-tu ? IIS ?

Peut-être est-ce le serveur qui corrige la syntaxe dans ce cas....

Anyway, ça marche donc on peut modifier avec le ";". Merci pour ta remarque qui servira sûrement à d'autres.

Eric, si tu nous lis. Peux-tu STP corriger la WTablette ??

Bon dev,

Olivier

Matthieu a écrit :
Ben le problème, c'est que sans le ";", le nom du fichier proposé sera par exemple "CATOGZ55." à la place du
"NomDuFichier.pdf" que j'avais indiqué

Je suis étonné que tu ne reproduises pas cela (j'utilise application/unknown)

Après des recherches sur Internet, il semble que le ";" fasse partie de la syntaxe classique. En tout cas, cela
fonctionne et c'est le principal

A+
Matthieu J


Publicado em setembro, 30 2005 - 12:54 PM
Olivier Priser avait prétendu :

Eric, si tu nous lis. Peux-tu STP corriger la WTablette ??



Fait

--
Eric
Webmaster des Wtablettes
www.wtablettes.net
Publicado em setembro, 30 2005 - 1:49 PM
Nickel, comme d'hab !!

Merci Eric !!

Bon dev,

Olivier

Eric a répondu :

Olivier Priser avait prétendu :

Eric, si tu nous lis. Peux-tu STP corriger la WTablette ??



Fait

--
Eric
Webmaster des Wtablettes
www.wtablettes.net

Publicado em outubro, 04 2005 - 7:57 PM
je ne m'attendais pas à autant de réponses..........
je vous remercie tous de nous avoir fait part de toutes ces intéressantes
solutions



"Olivier DEVILLERS" <olivier.devillers@cegetel.net> a écrit dans le message
de news: 4338f81f$1@news.pcsoft.fr...

Bonjour,

Sur mon site en WB9 j'ai un espace téléchargements.
Tout fonctionne bien avec des fichiers de petite taille (jusqu'à 5mo
environ) mais des que je veux mettre en téléchargement des fichiers de
taille + importante (15mo ou 40 mo) les internaute ont le message "time
out
..........."

y a t-il une limitation dans la taille des fichiers téléchargeable ou bien
une astuce que je n'ai pas vu dans l'aide ?

merci pour vos réponses