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+DowloadJe 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+DowloadBonjour,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.03PS: 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
