代码如下.功能需求:文件下载不完整,就提示或跳转到提示页面. 高手快乐吧!
String downLoadFile = request.getParameter("downLoadFile");
String downLoadFileName = request.getParameter("downLoadFileName");
String downLoadFileType = request.getParameter("downLoadFileType");
String downLoadFileMD5 = request.getParameter("downLoadFileMD5");
if(Constants.REPORT_EXCELMODE.equals(downLoadFileType))
response.setContentType("application/vnd.ms-excel");
else if(Constants.REPORT_PDFMODE.equals(downLoadFileType))
response.setContentType("application/pdf");
else if(Constants.REPORT_TXTMODE.equals(downLoadFileType))
response.setContentType("application/txt");
else if(Constants.REPORT_CSVMODE.equals(downLoadFileType))
response.setContentType("application/octet-stream");
else if(Constants.FILE_TYPE_ZIP.equals(downLoadFileType))
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition", "attachment; filename=\""
+ downLoadFileName + "\"");
FileInputStream fileInputStream = new FileInputStream(downLoadFile);
BufferedOutputStream bufferedOutputStream = new BufferedOutputStrea(
response.getOutputStream());
byte[] buffer = new byte[1024*1024*100];
int bytesRead = 0;
while((bytesRead=fileInputStream.read(buffer,0,1024*1024))!=-1){
byte[] b=new byte[bytesRead];
System.arraycopy(buffer, 0, b, 0, bytesRead);
bufferedOutputStream.write(b);
MD5.messageDigest.update(b);
}
bufferedOutputStream.flush();
fileInputStream.close();
bufferedOutputStream.close();
response.flushBuffer();
out.clear();
out = pageContext.pushBody();
String nowMd5=MD5.bufferToHex(MD5.messageDigest.digest());//下载后的MD5
System.out.println("NOW_MD5"+nowMd5);
System.out.println("OLD_MD5"+downLoadFileMD5);
//跳转不行
request.getRequestDispatcher("/login.jsp").forward(request,response);
String downLoadFile = request.getParameter("downLoadFile");
String downLoadFileName = request.getParameter("downLoadFileName");
String downLoadFileType = request.getParameter("downLoadFileType");
String downLoadFileMD5 = request.getParameter("downLoadFileMD5");
if(Constants.REPORT_EXCELMODE.equals(downLoadFileType))
response.setContentType("application/vnd.ms-excel");
else if(Constants.REPORT_PDFMODE.equals(downLoadFileType))
response.setContentType("application/pdf");
else if(Constants.REPORT_TXTMODE.equals(downLoadFileType))
response.setContentType("application/txt");
else if(Constants.REPORT_CSVMODE.equals(downLoadFileType))
response.setContentType("application/octet-stream");
else if(Constants.FILE_TYPE_ZIP.equals(downLoadFileType))
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition", "attachment; filename=\""
+ downLoadFileName + "\"");
FileInputStream fileInputStream = new FileInputStream(downLoadFile);
BufferedOutputStream bufferedOutputStream = new BufferedOutputStrea(
response.getOutputStream());
byte[] buffer = new byte[1024*1024*100];
int bytesRead = 0;
while((bytesRead=fileInputStream.read(buffer,0,1024*1024))!=-1){
byte[] b=new byte[bytesRead];
System.arraycopy(buffer, 0, b, 0, bytesRead);
bufferedOutputStream.write(b);
MD5.messageDigest.update(b);
}
bufferedOutputStream.flush();
fileInputStream.close();
bufferedOutputStream.close();
response.flushBuffer();
out.clear();
out = pageContext.pushBody();
String nowMd5=MD5.bufferToHex(MD5.messageDigest.digest());//下载后的MD5
System.out.println("NOW_MD5"+nowMd5);
System.out.println("OLD_MD5"+downLoadFileMD5);
//跳转不行
request.getRequestDispatcher("/login.jsp").forward(request,response);
解决方案 »
- 小问题求解
- CXF2.1 + aegis 怎么配置参数为一个JavaBean??谢谢了~~
- struts2中上传文件是不是必须用struts2的标签库,能不能用Html的标签库
- apache-tomcat-6.0.16下下找不到jk2.properties这个文件
- iframe传值问题,很急很急
- 散分100,问个蛮简单的问题.
- struts,高手帮帮我撒,谢谢了~!
- 聊天室用户的退出
- concurrency 是作什么的??
- CJEA之struts技术交流研讨会(北京)
- web.xml中设置先到servlet在通过servlet转到index.jsp
- 统计某一个文件夹下面总共有多少个文件和文件夹
就是怕文件在下载中,或其他情况被篡改,与原文件内容不符。所以当用户下载工程中,要进行MD5验证。
如果验证失败,则给用户相应的提示!现在我不知道如果MD5验证失败,在下载完成后怎么跳转到相应的提示页面