- From: Roland Mainz <Roland.Mainz@informatik.med.uni-giessen.de>
- Date: Thu, 01 Apr 1999 16:32:11 +0200
- To: W3 Jigsaw Mailinglist <www-jigsaw@w3.org>
Hi !
----
The following code should copy a file on disk to the requesting client,
but the downloaded
file differs in size and content from the original file.
Any hint whats going wrong here ?
-- snip --
private void putFile( DownloadItem di, HttpServletResponse res )
throws IOException
{
d( "sending '" + di.filename + "' (" + di.contenttype + ")" );
// get source
FileInputStream in = new FileInputStream( di.filename );
// prepare and get destination
res.setContentType( di.contenttype );
res.setContentLength( (int)di.filesize ); /* seems that here
sits a possible problem for files >= 2 GB... */
OutputStream out = res.getOutputStream();
int readlen,
sentsize = 0;
byte buffer[] = new byte[ 256 ];
// loop until EOF
while( (readlen = in.read( buffer )) != -1 )
{
// throws IOException: broken pipe when download is canceled.
out.write( buffer, 0, readlen );
sentsize += readlen;
}
// Success ! Close streams.
out.close();
in.close();
d( "transfer of " + di.filename + " (" + di.filesize + "/" +
sentsize + ") done." );
}
-- snip --
----
Bye,
Roland
--
__ . . __
(o.\ \/ /.o) Roland Mainz C programmer
\__\/\/__/ Roland.Mainz@informatik.med.uni-giessen.de MPEG specialist
/O /==\ O\ gisburn@w-specht.rhein-ruhr.de Sun&&Amiga programmer
(;O/ \/ \O;) TEL +49 (0) 2426901568 FAX +49 (0) 2426901569
Received on Thursday, 1 April 1999 09:31:36 UTC