我用struts action 下载文件
当用户点击“保存”时没有问题可以正常下载,
当用户点击“取消”时就发生ClientAbortException异常 java.io.OutputStream os = response.getOutputStream();
BufferedInputStream bis = new BufferedInputStream(is);
BufferedOutputStream bos = new BufferedOutputStream(os);
int c;
byte[] buffer = new byte[512];
while ((c = bis.read(buffer, 0, buffer.length)) != -1) {
bos.write(buffer, 0, c);
}
bos.flush();
is.close();ClientAbortException: java.net.SocketException: Connection reset by peer: socke
t write error
at org.apache.coyote.tomcat5.OutputBuffer.doFlush(OutputBuffer.java:331) at org.apache.coyote.tomcat5.OutputBuffer.flush(OutputBuffer.java:297)
at org.apache.coyote.tomcat5.CoyoteOutputStream.flush(CoyoteOutputStream.java:85)
at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:124)
... ...我的理解,应该是用户点击取消时,response.getOutputStream()已经关闭
所以继续写入数据就会出错,是不是这样啊?请教,怎么解决这个问题???
当用户点击“保存”时没有问题可以正常下载,
当用户点击“取消”时就发生ClientAbortException异常 java.io.OutputStream os = response.getOutputStream();
BufferedInputStream bis = new BufferedInputStream(is);
BufferedOutputStream bos = new BufferedOutputStream(os);
int c;
byte[] buffer = new byte[512];
while ((c = bis.read(buffer, 0, buffer.length)) != -1) {
bos.write(buffer, 0, c);
}
bos.flush();
is.close();ClientAbortException: java.net.SocketException: Connection reset by peer: socke
t write error
at org.apache.coyote.tomcat5.OutputBuffer.doFlush(OutputBuffer.java:331) at org.apache.coyote.tomcat5.OutputBuffer.flush(OutputBuffer.java:297)
at org.apache.coyote.tomcat5.CoyoteOutputStream.flush(CoyoteOutputStream.java:85)
at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:124)
... ...我的理解,应该是用户点击取消时,response.getOutputStream()已经关闭
所以继续写入数据就会出错,是不是这样啊?请教,怎么解决这个问题???
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货