文件名称:JSF文件下载实现
文件大小:27KB
文件格式:DOC
更新时间:2016-03-28 03:17:39
JSF文件下载
JSF实现文件的下载功能
public static void downloadFile(String path,String fileName) {
try {
// 获得JSF上下文环境
FacesContext context = FacesContext.getCurrentInstance();
// 获得ServletContext对象
ServletContext servletContext = (ServletContext) context
.getExternalContext().getContext();
// 取得文件的绝对路径
String realName = servletContext.getRealPath(path) + "/"
+ fileName;
HttpServletResponse httpServletResponse =
(HttpServletResponse) FacesContext
.getCurrentInstance().getExternalContext().getResponse();
downloadFile(httpServletResponse,realName,fileName);
} catch (IOException e) {
e.printStackTrace();
}
FacesContext.getCurrentInstance().responseComplete();
}
public static void downloadFile(HttpServletResponse response,String realName,String fileName)
throws IOException
{
response.setHeader("Content-disposition",
"attachment; filename=" + fileName);
response.setContentType("application/x-download");
//File exportFile = new File(realName);
//response.setContentLength((int) exportFile.length());
ServletOutputStream servletOutputStream = response.getOutputStream();
byte[] b = new byte[1024];
int i = 0;
FileInputStream fis = new java.io.FileInputStream(realName);
while ((i = fis.read(b)) > 0) {
servletOutputStream.write(b, 0, i);
}
}
使用方法
1、在backing bean的方法中调用函数1即可。如Abean中download方法调用了该方法,前台可以这样调用: