<%//注意符号<%之前不能有回车,否则下载的文件第一个字符就是回车,可能导致文件格式非法 String filename = ""; String fileFullName=""; int ch; if (request.getParameter("file") != null) { filename =request.getParameter("file"); } fileFullName=request.getRealPath(filename); java.io.File myFilePath=new java.io.File(fileFullName); if(!myFilePath.exists()){ out.print("file not found!"); }else{ response.setContentType("APPLICATION/OCTET-STREAM"); response.setHeader("Content-Disposition","attachment;filename=\""+filename+"\""); java.io.FileInputStream fileInputStream =new java.io.FileInputStream(fileFullName); while ((ch=fileInputStream.read()) != -1) { out.write(ch); } fileInputStream.close(); out.close(); } //这种方法是直接从文件中读取数据输出到客户端,所以在整个文件中,不能再使用out.print或其它方法 //向客户端输出任何信息,因为通过别的方式输出的信息也会保存在文件中,这样就破坏了文件的结构了。比如 //<%符号前面出现的哪怕一个空格,一个回车都不可以,所以千万要小心。 %> |
|