当前位置: 技术问答>java相关
上传文件时,如何在读取文件内容之前中断读取,并返回客户端错误信息?
来源: 互联网 发布时间:2015-04-30
本文导语: 实现上传文件,要解析request.getInputStream() 我希望在读取数据之前,判断上传的文件的大小,如果太大则返回错误信息,所以在servlet的doPost方法最前面加了对request.getContentLength()的判断,但是在调用request.getContentLeng...
实现上传文件,要解析request.getInputStream()
我希望在读取数据之前,判断上传的文件的大小,如果太大则返回错误信息,所以在servlet的doPost方法最前面加了对request.getContentLength()的判断,但是在调用request.getContentLength()方法之后,就无法通过response传给客户端错误信息了,客户端老是报“找不到服务器或发生 DNS 错误“,必须等request.getInputStream()全部读取完毕之后才能使用response输出。我想这可能是客户端发送的数据被非法中断了。我希望既能中断客户端的数据传送,还能往客户端发送错误信息。
不知道该如何处理?
我希望在读取数据之前,判断上传的文件的大小,如果太大则返回错误信息,所以在servlet的doPost方法最前面加了对request.getContentLength()的判断,但是在调用request.getContentLength()方法之后,就无法通过response传给客户端错误信息了,客户端老是报“找不到服务器或发生 DNS 错误“,必须等request.getInputStream()全部读取完毕之后才能使用response输出。我想这可能是客户端发送的数据被非法中断了。我希望既能中断客户端的数据传送,还能往客户端发送错误信息。
不知道该如何处理?
|
你可以:
request.getInputStream().skip(request.getContentLength());
然后再继续打印出错信息,否则好像的确是不能够正常工作的
request.getInputStream().skip(request.getContentLength());
然后再继续打印出错信息,否则好像的确是不能够正常工作的
|
"调用request.getContentLength()方法之后,就无法通过response传给客户端错误信息"?不会吧
其实你也可以判断后重定向到一个错误页面提示客户的
参考:
http://www-900.ibm.com/developerWorks/java/fileup/index.shtml
其实你也可以判断后重定向到一个错误页面提示客户的
参考:
http://www-900.ibm.com/developerWorks/java/fileup/index.shtml