Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class Download extends Action {
- private static final int BUFFER_SIZE = 4096;
- public ActionForward execute(ActionMapping mapping,
- ActionForm form,
- HttpServletRequest request,
- HttpServletResponse response) throws Exception {
- String filename = "file with spaces.pdf";
- File file = ... // variable containing the file;
- response.setStatus(HttpServletResponse.SC_OK);
- response.setContentType(getMimeType(request, file));
- response.setHeader("Content-Type", getMimeType(request, file));
- response.setHeader("Content-Disposition","attachment; filename="+ filename);
- InputStream is = new FileInputStream(file);
- sendFile(is, response);
- return null;
- }
- protected String getMimeType(HttpServletRequest request, File file) {
- ServletContext application = super.servlet.getServletContext();
- return application.getMimeType(file.getName());
- }
- protected void sendFile(InputStream is, HttpServletResponse response) throws IOException {
- BufferedInputStream in = null;
- try {
- int count;
- byte[] buffer = new byte[BUFFER_SIZE];
- in = new BufferedInputStream(is);
- ServletOutputStream out = response.getOutputStream();
- while(-1 != (count = in.read(buffer)))
- out.write(buffer, 0, count);
- out.flush();
- } catch (IOException ioe) {
- System.err.println("IOException in Download::sendFile");
- ioe.printStackTrace();
- } finally {
- if (in != null) {
- try {
- in.close();
- } catch (IOException ioe) { ioe.printStackTrace(); }
- }
- }
- }
- }
- response.setHeader("Content-Disposition","attachment; filename="" + filename + """);
Add Comment
Please, Sign In to add comment