急啊,请大家多多帮忙!!!

AbnerChai 2004-07-16 06:58:13
我们现在用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();
}
...全文
71 6 打赏 收藏 举报
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
blasterboy 2004-07-19
你不能弄成多线成,因为你是自己写出来,提供给客户端的,除非你提供给客户的是文件的URL
  • 打赏
  • 举报
回复
fuzhe 2004-07-19
这个问题确实没有见过哦,帮你顶吧
  • 打赏
  • 举报
回复
AbnerChai 2004-07-19
有没有人帮帮我?????
  • 打赏
  • 举报
回复
AbnerChai 2004-07-19
不行啊,用flashget也是一样的。
  • 打赏
  • 举报
回复
朋友别哭 2004-07-16
servlet还能提供下载文件功能啊
学习中
up
  • 打赏
  • 举报
回复
umbrella1984 2004-07-16
是蚂蚁的问题吧,下载个注册版或破解的试下。
  • 打赏
  • 举报
回复
相关推荐
发帖
Web 开发

8.0w+

社区成员

Java Web 开发
社区管理员
  • Web 开发社区
加入社区
帖子事件
创建了帖子
2004-07-16 06:58
社区公告
暂无公告