1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
public static synchronized void downloadFile( String fileName, BlobDomain blobDomain )
{
FacesContext facesContext = FacesContext.getCurrentInstance();
ExternalContext extContext = facesContext.getExternalContext();
Long length = blobDomain.getLength();
String fileType = MimeTypes.getMimeType(fileName);
HttpServletResponse response = (HttpServletResponse) extContext.getResponse();
response.setHeader("Content-Disposition", "attachment;filename=\"" + fileName + "\"");
response.setContentLength((int) length.intValue());
response.setContentType( fileType );
try {
InputStream in = blobDomain.getBinaryStream();
OutputStream out = response.getOutputStream();
byte[] buf = new byte[1024];
int count;
while ((count = in.read(buf)) >= 0) {
out.write(buf, 0, count);
}
in.close();
out.flush();
out.close();
facesContext.responseComplete();
} catch (IOException ex) {
System.out.println(ex.getMessage());
ex.printStackTrace();
}
} |
Partager