急啊,请大家多多帮忙!!!
我们现在用servlet提供下载文件功能,首先servlet读出服务器上的文件,然后用outputstream写到客户端。用浏览器可以正常下载,但用网络蚂蚁等支持多线程的不可以下载,提示说:不支持多线程。只能开一个蚂蚁下载。
请问如何做到支持多线程下载的servlet?我找了很多资料,都没有发现。
多谢大家帮忙,有点急。附下载的servlet代码如下:
if (request.getHeader("User-Agent").indexOf("MSIE 5.5") != -1) {
// MS IE5.5 有要作特別處理
response.setHeader("Content-Disposition",
"filename=" +
new String(filename.getBytes("gb2312"),
"ISO8859_1"));
}
else {
// 非 IE5.5 的 Header 設定方式
response.addHeader("Content-Disposition",
"attachment;filename=" +
new
String(filename.getBytes("gb2312"), "ISO8859_1"));
}
response.setHeader("content-type", "application/RFC822");
response.setHeader("Connection", "close");
response.setHeader("Content-length", filesize + "");
//response.setHeader("Content-Type", "application/octet-stream");
servletoutputstream = response.getOutputStream();
bufferedoutputstream = new BufferedOutputStream(servletoutputstream);
int totalRead = 0;
int blocksize = 4096;
byte[] buffer = new byte[blocksize]; //4k for buffer;
while (totalRead < filesize) {
int readBytes = filein.read(buffer, 0, blocksize);
totalRead += readBytes;
bufferedoutputstream.write(buffer, 0, readBytes);
}
response.setStatus(response.SC_OK );
response.flushBuffer();
}