81,094
社区成员
发帖
与我相关
我的任务
分享
public void downloadAction(ActionEvent event) {
try {
FacesContext facesContext = FacesContext.getCurrentInstance();
HttpServletRequest myRequest = (HttpServletRequest)facesContext.getExternalContext().getRequest();
String id = myRequest.getParameter("attachmentId");
Attachment attachment = new Attachment();
attachment.setId(Integer.parseInt(id));
attachment = this.attachmentService.findAttachment(attachment);
String fileName=attachment.getFilePath()+File.separator+attachment.getFileName();
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(fileName));
HttpServletResponse response=(HttpServletResponse) facesContext.getExternalContext().getResponse();
response.setHeader("Content-disposition", "attachment; filename="+java.net.URLEncoder.encode(attachment.getFileRealName(), "UTF-8") ); //不是内嵌显示(inline),而是作为附件下载
//response.setContentLength(baos.size());
ServletOutputStream sos=response.getOutputStream();
int temp =-1;
while((temp=bis.read())!=-1){
sos.write(temp);
}
sos.flush();
bis.close();
sos.close();
} catch (IOException ex) {
} catch (Exception e) {
e.printStackTrace();
}
}