private void serveFile(final File file, final HttpServletResponse response) throws IOException { response.setContentType(getServletContext().getMimeType(file.getName())); response.setContentLength(file.length()); response.getHeaders().setHeader(Headers.HEADER_CONTENT_DISPOSITION, "attachment; filename=" + StringUtilities.urlEncode(file.getName())); InputStream in = null; try { OutputStream out = response.getOutputStream(); in = new FileInputStream(file); IOUtilities.copyStreams(in, out); out.flush(); } finally { IOUtilities.closeSilently(in); } } }