java 如何实现文件下载时,弹出文件保存窗口

来源:互联网 发布:淘宝卖明星同款违规吗 编辑:程序博客网 时间:2024/06/04 19:03
response.setContentType("application/octet-stream");            response.setContentType("application/OCTET-STREAM;charset=UTF-8");            response.setHeader("Content-Disposition", "attachment;filename=" + fileName1);File file = new File(filePath + fileName);try {    fis = new FileInputStream(file);    out = new BufferedOutputStream(response.getOutputStream());    byte[] buffer = new byte[1024];    int len;    while ((len = fis.read(buffer)) != -1) {         out.write(buffer, 0, len);         out.flush();    }}catch.......


 

 

 

一种在线打开或下载的方式

public String executeCommandUDownload(ActionContext context)throws Exception{HttpServletResponse response = context.getResponse();response.setCharacterEncoding("UTF-8");boolean isOnLine = false;String fileName = context.getRequest().getParameter("fileName");                Connection con = null;HttpServletRequest request = context.getRequest();String filePath = null;BufferedInputStream buffer=null;OutputStream out=null;try{con = this.getConnection(context);if("".equals(fileName) || fileName == null){FileInfoBean bean = new FileInfoBean();fileName = bean.findName(con, id);}File f = new File(filePath);                      //检查该文件是否存在if(!f.exists()){response.sendError(404,"File not found!");return "File not found!";}buffer = new BufferedInputStream(new FileInputStream(f));byte[] buf = new byte[1024];int len = 0;response.reset(); //非常重要if(isOnLine){ //在线打开方式URL u = new URL("file:///"+filePath);response.setContentType(u.openConnection().getContentType());response.setHeader("Content-Disposition", "inline; filename="+(f.getName()).getBytes("gbk"));//文件名应该编码成UTF-8}else{ //纯下载方式response.setContentType("application/x-msdownload"); response.setHeader("Content-Disposition", "attachment; filename=" + java.net.URLEncoder.encode(f.getName(),"UTF-8")); }out = response.getOutputStream();while((len = buffer.read(buf)) >0)out.write(buf,0,len);}catch(Throwable e){e.printStackTrace();}finally{try{buffer.close();out.close();}catch(Throwable e){e.printStackTrace();   }}return "";}


 

原创粉丝点击