让jsp 可以直接下载txt文件的方法(流下载,指定下载文件类型)

来源:互联网 发布:vmware使用教程linux 编辑:程序博客网 时间:2024/05/02 07:56
String acct_month = actionForm.get("acctMonth").toString();    String acctMonth = acct_month.replace("-", "");    // String message=bdPostAcctFeeService.compute(acctMonth);    String path = request.getContextPath() + "/upload/" + acctMonth      + ".txt";    if (bdPostAcctFeeService.getExportFile(acctMonth, path)) {   String filePath = path;     File file = new File(path);     String filename = file.getName();     // 取得文件的扩展名ext     String ext = filename.substring(filename.lastIndexOf(".") + 1)       .toUpperCase();     InputStream fis = new BufferedInputStream(new FileInputStream(       path));     byte[] buffer = new byte[fis.available()];     fis.read(buffer);     fis.close();     response.reset();     response.addHeader("Content-Disposition",       "attachment;filename="         + new String(filename.getBytes()));     response.addHeader("Content-Length", "" + file.length()); // 设置返回的文件类型     OutputStream toClient = new BufferedOutputStream(response       .getOutputStream()); // 得到向客户端输出二进制数据的对象     // 根据扩展名声称客户端浏览器mime类型     if (ext.equals("xls"))      response.setContentType("application/msexcel");     else      response.setContentType("application/octet-stream"); // 设置返回的文件类型     toClient.write(buffer); // 输出数据     toClient.flush();     toClient.close();     forward = null;

这些代码要写在action中,不能写在页面然后用流下载。注意 return null。
原创粉丝点击