Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package sk.seges.acris.reporting.server.service;
  
  import java.io.File;
  
 
 public class ImageServlet extends HttpServlet {
 	private static final long serialVersionUID = -5741075896170745723L;
     private static final String UNKNOWN_MIME_TYPE="application/x-unknown-mime-type";
 
 
 	protected void doPost(HttpServletRequest requestHttpServletResponse response)
 		processRequest(requestresponsefalse);
 	}
 
 	protected void doGet(HttpServletRequest requestHttpServletResponse response)
 		processRequest(requestresponsetrue);
 	}
 
 	private void processRequest(HttpServletRequest request,
 			HttpServletResponse responseboolean inlinethrows IOException {
 		File toDownload = null;
 		try {
 			toDownload = getFileToDownload(requestresponse);
 		} catch (Exception e) {
 			throw new IOException("Download failed");
 		}
 
 		byte[] buf = new byte[8192];
 		ServletOutputStream outputStream = response.getOutputStream();
 
 		String mimeType = getServletContext().getMimeType(toDownload.getAbsolutePath());
 
 //		String mimeType = new MimetypesFileTypeMap().getContentType(toDownload);
 		if (null == mimeType) {
 			mimeType = ;
 		}
 
 		response.setContentType(mimeType);
 		if (inline) {
 			response.setHeader("Content-Disposition""inline; filename="
 					+ toDownload.getName());
 		} else {
 			response.setHeader("Content-Disposition""attachment; filename="
 					+ toDownload.getName());
 		}
 		FileInputStream fis = new FileInputStream(toDownload);
 
 		int length = 0;
 		while ((length = fis.read(buf)) != -1) {
 			outputStream.write(buf, 0, length);
 		}
 
 		try {
 
 			outputStream.flush();
 			outputStream.close();
 			fis.close();
 
 		} catch (IOException e) {
 			fis.close();
 
 			throw e;
 		} finally {
 			if (outputStream != null) {
 				outputStream.close();
 			}
 			if (fis != null) {
 				fis.close();
 			}
 		}
 	}
 	
 	protected static final String FILE_NAME_PARAMETER = "fileName";
 	protected static final String USER_NAME_PARAMETER = "webId";
 
 	protected File getFileToDownload(HttpServletRequest requestHttpServletResponse responsethrows Exception {
 
         String fileName = request.getParameter();
         if(null == fileName) {
             throw new IllegalArgumentException("No file specified.");
         }
 
         String webId = request.getParameter();
         if(null == webId || webId.isEmpty()) {
             throw new IllegalArgumentException("No webId specified.");
         }
 
        File userDir = getServletDirectoryConfigurer().resolveRootDirectoryPath(webId);
        
        if (!userDir.exists()) {
	        throw new IOException("Not valid user directory");
        }
        File resultFile = new File(userDirfileName);
        if (!resultFile.exists()) {
	        throw new IOException("Not image file specified");
        }
        return resultFile;
	}
	public void setServletDirectoryConfigurer(ConfigurationProvider servletDirectoryConfigurer) {
		. = servletDirectoryConfigurer;
	}
	}
New to GrepCode? Check out our FAQ X