/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package com.fitbank.servlet; import com.fitbank.common.crypto.Decrypt; import com.fitbank.common.properties.PropertiesHandler; import com.fitbank.dto.GeneralResponse; import com.fitbank.dto.management.Detail; import com.fitbank.homebanking.BussinessDelegate; import com.fitbank.homebanking.ImageUploadManager; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Servlet usado para la Carga de Imagenes desde la Web. * @author BANTEC inc. */ public class UploadServlet extends HttpServlet{ protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.addHeader("Pragma", "no-cache"); resp.addHeader("Cache-Control", "no-cache"); try{ String user=(String)req.getSession().getAttribute("user"); if(user != null){ if(user.compareTo("")!=0){ String fileName="IMG"+user; PropertiesHandler properties = new PropertiesHandler("images"); String path=properties.getStringValue("webapp.uploadedImages.path"); // String path = "C:\\FitBank\\uploadedImages\\"; ImageUploadManager imageManager= new ImageUploadManager( req, properties.getIntValue("sizeThreshold"), new Long(properties.getStringValue("imageMaxSizeInBytes")), properties.getIntValue("imageHeight"), properties.getIntValue("imageWidth"), fileName, path); imageManager.uploadImage(); Detail detail=this.prepareDetail(imageManager.getRealFileName(), req.getParameter("h_p"),user,imageManager.getImageExtension()); detail=this.processDetail(detail); GeneralResponse gr=detail.getResponse(); if(gr.getCode().compareTo(GeneralResponse.OK)==0){ req.getRequestDispatcher("/init.jsf").forward(req, resp); }else{ req.getSession().setAttribute("ACCESS_ALLOWED", "1"); req.setAttribute("_Message","Core Message :"+ gr.getUserMessage()); req.getRequestDispatcher("/uploadImage.jsp").forward(req, resp); } }else{ req.getRequestDispatcher("/unavailable.jsp").forward(req, resp); } }else{ req.getRequestDispatcher("/unavailable.jsp").forward(req, resp); } }catch(Exception e){ e.printStackTrace(); if(e.getMessage().indexOf("multipart/form-data")!=-1){ req.getRequestDispatcher("/unavailable.jsp").forward(req, resp); }else{ req.setAttribute("_Message", e.getMessage()); req.getSession().setAttribute("ACCESS_ALLOWED", "1"); req.getRequestDispatcher("/uploadImage.jsp").forward(req, resp); } } } /** * Metodo que setea la cabecera del detail * de esta para ser consultada * @param Detail de peticion * @throws Exception */ private void setDetailHeader(Detail pDetail)throws Exception{ PropertiesHandler jsonProp = new PropertiesHandler("json"); pDetail.setUser(jsonProp.getStringValue("json.user")); Decrypt de = new Decrypt(); pDetail.setPassword(de.encrypt(jsonProp.getStringValue("json.password"))); pDetail.setIpaddress("0.0.0.0"); pDetail.setType("MAN"); pDetail.setSessionid(jsonProp.getStringValue("json.sessionId")); pDetail.setLanguage(jsonProp.getStringValue("json.language")); pDetail.setTerminal(jsonProp.getStringValue("json.terminal")); pDetail.setChannel(jsonProp.getStringValue("json.channel")); pDetail.setRole(jsonProp.getIntValue("json.rol")); pDetail.setCompany(jsonProp.getIntValue("json.company")); pDetail.setOriginbranch(jsonProp.getIntValue("json.originbranch")); pDetail.setOriginoffice(jsonProp.getIntValue("json.originoffice")); pDetail.setSecuritylevel(jsonProp.getIntValue("json.securitylevel")); pDetail.setSubsystem("18"); pDetail.setTransaction("2050"); pDetail.setVersion("01"); pDetail.setAccountingdate(new java.sql.Date(System.currentTimeMillis())); pDetail.findFieldByNameCreate("_AUTOLOTE").setValue("1"); } /** * Metodo que setea el detail con los campos de control que indican el codigo de imagen y la secuencia * de esta para ser consultada * @param String codigo de imagen * @param String secuencia de imagen * @return Detail de peticion * @throws Exception */ private Detail prepareDetail(String fileName,String phrase,String user,String fileType)throws Exception{ Detail detail=new Detail(); this.setDetailHeader(detail); detail.findFieldByNameCreate("FILENAME").setValue(fileName); detail.findFieldByNameCreate("PHRASE").setValue(phrase); detail.findFieldByNameCreate("USER").setValue(user); detail.findFieldByNameCreate("FILETYPE").setValue(fileType); return detail; } /** * Metodo que envia el detail a UCI * @param Detail de peticion * @return Detail recibido * @throws Exception */ private Detail processDetail(Detail detail)throws Exception{ BussinessDelegate bd = new BussinessDelegate(); return bd.process(detail); } }