【发布时间】:2014-02-03 15:09:59
【问题描述】:
我的问题是,我无法下载大于 100mb 的文件,我怀疑是 html 请求
这是我回复中的 setHeader
HttpServletResponse response = (HttpServletResponse) requestContext.getExternalContext().getNativeResponse();
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition", "attachment; filename=\""+fileName+"\"");
response.setHeader("Pragma", "public");
response.setHeader("Cache-control", "private");
这是读取文件的流声明
ServletOutputStream sos = response.getOutputStream();
sos.flush();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String str = br.readLine();
while (str != null) {
sos.write(str.getBytes());
sos.write(13);
sos.write(10);
str = br.readLine();
}
这个“while”适用于小文件,但在大文件的情况下,似乎会话丢失了,因为我错过了调试并且不会在下一个断点处停止。 有什么办法可以防止执行失误
【问题讨论】:
-
你有异常吗?如果是这样,请发布堆栈跟踪。
-
我无法发布异常,因为服务器中没有发生异常。连接在“while”内丢失
标签: java web-services servlets filestream session-timeout