我想规定要下载所有文件类型…有没有办法下载jsp中的任何文件格式…
我的代码段:
String filename = (String) request.getAttribute("fileName"); response.setContentType("APPLICATION/OCTET-STREAM"); String disHeader = "Attachment"; response.setHeader("Content-Disposition", disHeader); // transfer the file byte-by-byte to the response object File fileToDownload = new File(filename); response.setContentLength((int) fileToDownload.length()); FileInputStream fileInputStream = new FileInputStream(fileToDownload); int i = 0; while ((i = fileInputStream.read()) != -1) { out.write(i); } fileInputStream.close();
如果我将setContentType指定为APPLICATION / OCTET- STREAM,则会下载pdf,文本,doc文件…。但是问题在于图像文件…
图像文件有什么问题?我想下载所有图像文件类型…
我搜索了类似的问题,但找不到正确的答案…谢谢…
最后,我以某种方式设法做到了……问题出在JSP的“ Out.write”上,它无法写入字节流……
我用servlet替换了jsp文件…
该代码段是:
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { try { String filename = (String) request.getAttribute("fileName"); response.setContentType("application/octet-stream"); response.setHeader("Content-Disposition", "attachment;filename="+filename); File file = new File(filename); FileInputStream fileIn = new FileInputStream(file); ServletOutputStream out = response.getOutputStream(); byte[] outputByte = new byte[(int)file.length()]; //copy binary contect to output stream while(fileIn.read(outputByte, 0, (int)file.length()) != -1) { out.write(outputByte, 0, (int)file.length()); } }
现在,我可以下载所有类型的文件了。
感谢您的回应:)