Voila le resultat de mes investigations suite � vos r�ponses.
 
En fait c'est une histoire de flush
 
Pour optimiser le t�l�chargement en positionnant la boite de dialogue � la premiere r�ception de paquet  il faut faire la chose suivante:
 
// pour la requete
response.setContentType("multipart/x-zip");
response.setHeader("Content-Disposition","inline; filename=fichier.zip"); // si tu n'utilise pas de   
                                                                                                          //servlet
response.setContentLength((int) file.length());
 
 
byte [] data = "new" byte[response.getBufferSize()];
InputStream in = file.getBinaryStream();
OutputStream out = response.getOutputStream();
while (in.read(data) != -1) {
out.write(data);
out.flush();
}
out.close();
 
 
Pour optimiser le t�l�chargement utilser la taille du buffer du response pour le tampon de lecture.
Le flush provoque l'emission du premier paquet, ce qui implique l'ouverture de la boite de dialogue.
 
Par contre si tu fais un truc du genre
 
 
byte[] data = "new" byte[(int) file.length()];
long lon = 0;
InputStream in = file.getBinaryStream();
in.read(data);
in.close();
OutputStream out = response.getOutputStream();
out.write(data);
out.close();
 
Dans ce cas tu charges le fichier en entier dans le bufferQuand on fait le "close", on provoque l'emission de l'ensemble des paquets � la fois. Ce qui a pour inconv�nient de gazer le client qui traite les paquets et qui � la fin du t�l�chargement ouvre la boite de dialogue
 
 
Et voila une explication � garder sous le coude
 
A++
 

 

 

-----Message d'origine-----
De : zze-C2C PIEL S ext FTRD/DMI/SOP [mailto:[EMAIL PROTECTED]]
Envoy� : mardi 16 juillet 2002 14:43
� : [EMAIL PROTECTED]
Objet : RE: HttpServletResponse+Dowload

Je pense qu'un:
 
response.setContentLength( <taille de ton fichier zip> );
 
r�soudra ton probl�me
 
 
-----Message d'origine-----
De : s�bastien Layer [mailto:[EMAIL PROTECTED]]
Envoy� : mardi 16 juillet 2002 14:33
� : [EMAIL PROTECTED]
Objet : HttpServletResponse+Dowload

Bonjour,
 
A travers une servlet je fait t�l�charger � un client un fichier zip.
 
Je prend mon objet response. Je lui pr�cise son type mime "multipart/x-zip" et j'�cris dans son outputstream le fichier � t�l�charger. Tout se passe bien, le client t�l�charge le fichier.
 
Cependant la boite de dialogue pr�sente dans IE et permettant de visualiser le taux de t�l�chargement du fichier n'apparait qu'� la fin du t�l�chargement. Apres avoir recu le fichier en entier sur le poste client. (meme s'il fait 100Mo).
 
Question:
Pourquoi ? Avez vous une id�e pour contrer ce probleme ?  
 
Environnement de travail: Websphere 4.03
 
PS: Le mime type sp�cifi� est le meme que celui sp�cifi� dans le serveur web.

------------------------
S�bastien Layer
EUPS

[EMAIL PROTECTED]
T�l: 01 49 01 74 17

Berkeley Building
19-29 rue du Capitaine Guynemer
92400 Courbevoie

 

Répondre à