/** * Realizando o upload do arquivo informado * * @author Raphael Rossiter * @date 30/07/2009 * @param HttpServletRequest */ private Object[] recebendoObjetos(HttpServletRequest httpServletRequest) throws FileUploadException { Object[] parametrosFormulario = new Object[2]; DiskFileUpload upload = new DiskFileUpload(); List itens = upload.parseRequest(httpServletRequest); FileItem fileItem = null; if (itens != null) { Iterator iter = itens.iterator(); while (iter.hasNext()) { fileItem = (FileItem) iter.next(); if (fileItem.getFieldName().equals("arquivoAnexo")) { parametrosFormulario[0] = fileItem; } if (fileItem.getFieldName().equals("observacaoAnexo")) { parametrosFormulario[1] = fileItem.getString(); } } } return parametrosFormulario; }
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { if (!(request instanceof HttpServletRequest)) { chain.doFilter(request, response); return; } HttpServletRequest httpRequest = (HttpServletRequest) request; boolean isMultipartContent = FileUpload.isMultipartContent(httpRequest); if (!isMultipartContent) { chain.doFilter(request, response); return; } DiskFileUpload upload = new DiskFileUpload(); if (repositoryPath != null) upload.setRepositoryPath(repositoryPath); try { List list = upload.parseRequest(httpRequest); final Map map = new HashMap(); for (int i = 0; i < list.size(); i++) { FileItem item = (FileItem) list.get(i); String str = item.getString(); if (item.isFormField()) map.put(item.getFieldName(), new String[] {str}); else httpRequest.setAttribute(item.getFieldName(), item); } chain.doFilter( new HttpServletRequestWrapper(httpRequest) { public Map getParameterMap() { return map; } public String[] getParameterValues(String name) { Map map = getParameterMap(); return (String[]) map.get(name); } public String getParameter(String name) { String[] params = getParameterValues(name); if (params == null) return null; return params[0]; } public Enumeration getParameterNames() { Map map = getParameterMap(); return Collections.enumeration(map.keySet()); } }, response); } catch (FileUploadException ex) { ServletException servletEx = new ServletException(); servletEx.initCause(ex); throw servletEx; } }
public void init(ServletConfig servletConfig) throws ServletException { super.init(servletConfig); fileUpload = new DiskFileUpload(); fileUpload.setHeaderEncoding("UTF-8"); fileUpload.setSizeMax(verticalProperties.getMultiPartRequestMaxSize()); fileUpload.setSizeThreshold(64000); // Parameters for the mail sent to users when generating a new password: SMTP_HOST = verticalProperties.getMailSmtpHost(); if (SMTP_HOST == null) { SMTP_HOST = "mail.enonic.com"; } }
public ActionForward execute( ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { // Seta o mapeamento de retorno ActionForward retorno = actionMapping.findForward("exibirGerarAvisoDeDebito"); DiskFileUpload upload = new DiskFileUpload(); List items = null; try { items = upload.parseRequest(httpServletRequest); this.getSessao(httpServletRequest).setAttribute("arquivo", items); } catch (FileUploadException e) { items = (List) this.getSessao(httpServletRequest).getAttribute("arquivo"); if (items == null) { throw new ActionServletException("erro.sistema", e); } } FileItem item = (FileItem) Util.retonarObjetoDeColecao(items); String nomeArquivo = item.getName().replace(".txt", ""); nomeArquivo = nomeArquivo.replace("EMITIR", ""); Collection colecaoEmitirReavisoDeDebitoHelper = this.gerarColecaoEmitirReavisoDeDebitoHelper(items); String tipoRelatorio = httpServletRequest.getParameter("tipoRelatorio"); RelatorioAvisoDeDebito relatorio = new RelatorioAvisoDeDebito(this.getUsuarioLogado(httpServletRequest)); relatorio.addParametro( "colecaoEmitirReavisoDeDebitoHelper", colecaoEmitirReavisoDeDebitoHelper); relatorio.addParametro("nomeArquivo", nomeArquivo); if (tipoRelatorio == null) { tipoRelatorio = TarefaRelatorio.TIPO_PDF + ""; } relatorio.addParametro("tipoFormatoRelatorio", Integer.parseInt(tipoRelatorio)); retorno = processarExibicaoRelatorio( relatorio, tipoRelatorio, httpServletRequest, httpServletResponse, actionMapping); return retorno; }
/** * Parses the input stream and partitions the parsed items into a set of form fields and a set of * file items. * * @param request The multipart request wrapper. * @param servletContext Our ServletContext object * @return multipart processed request * @throws HdivMultipartException if an unrecoverable error occurs. */ public HttpServletRequest handleMultipartRequest( RequestWrapper request, ServletContext servletContext) throws HdivMultipartException { DiskFileUpload upload = new DiskFileUpload(); upload.setHeaderEncoding(request.getCharacterEncoding()); // Set the maximum size before a FileUploadException will be thrown. upload.setSizeMax(getSizeMax()); // Set the maximum size that will be stored in memory. upload.setSizeThreshold((int) getSizeThreshold()); // Set the the location for saving data on disk. upload.setRepositoryPath(getRepositoryPath(servletContext)); List<FileItem> items = null; try { items = upload.parseRequest(request); } catch (DiskFileUpload.SizeLimitExceededException e) { if (log.isErrorEnabled()) { log.error("Size limit exceeded exception"); } // Special handling for uploads that are too big. throw new HdivMultipartException(e); } catch (FileUploadException e) { if (log.isErrorEnabled()) { log.error("Failed to parse multipart request", e); } throw new HdivMultipartException(e); } // Process the uploaded items Iterator<FileItem> iter = items.iterator(); while (iter.hasNext()) { FileItem item = iter.next(); if (item.isFormField()) { this.addTextParameter(request, item); } else { this.addFileParameter(request, item); } } return request; }
private ExtendedMap parseMultiPartRequest(HttpServletRequest request) throws FileUploadException, IOException { ExtendedMap formItems = new ExtendedMap(); List paramList = fileUpload.parseRequest(request); for (Object parameter : paramList) { FileItem fileItem = (FileItem) parameter; String name = fileItem.getFieldName(); if (fileItem.isFormField()) { String value = fileItem.getString("UTF-8"); if (formItems.containsKey(name)) { ArrayList<Object> values = new ArrayList<Object>(); Object obj = formItems.get(name); if (obj instanceof Object[]) { String[] objArray = (String[]) obj; for (int i = 0; i < objArray.length; i++) { values.add(objArray[i]); } } else { values.add(obj); } values.add(value); formItems.put(name, values.toArray(new String[values.size()])); } else { formItems.put(name, value); } } else { if (fileItem.getSize() > 0) { if (formItems.containsKey(name)) { ArrayList<Object> values = new ArrayList<Object>(); Object obj = formItems.get(name); if (obj instanceof FileItem[]) { FileItem[] objArray = (FileItem[]) obj; for (int i = 0; i < objArray.length; i++) { values.add(objArray[i]); } } else { values.add(obj); } values.add(fileItem); formItems.put(name, values.toArray(new FileItem[values.size()])); } else { formItems.put(name, fileItem); } } } } // Add parameters from url Map paramMap = URLUtil.decodeParameterMap(request.getParameterMap()); for (Object parameterEntry : paramMap.entrySet()) { Map.Entry entry = (Map.Entry) parameterEntry; String key = (String) entry.getKey(); String[] values = (String[]) entry.getValue(); for (String value : values) { formItems.put(key, value); } } // Remove all empty parameters that are NOT in an array ArrayList<String> remove = new ArrayList<String>(); for (Object parameterKey : formItems.keySet()) { String key = (String) parameterKey; Object value = formItems.get(key); if (!(value instanceof String[]) && value instanceof String && ((String) value).length() == 0) { remove.add(key); } } for (String key : remove) { formItems.remove(key); } return formItems; }
public ModelAndView addDocuments(HttpServletRequest request, HttpServletResponse response) throws ServletException { JSONObject jobj = new JSONObject(); JSONObject myjobj = new JSONObject(); List fileItems = null; KwlReturnObject kmsg = null; String auditAction = ""; boolean applicant = false; String id = java.util.UUID.randomUUID().toString(); PrintWriter out = null; // Create transaction DefaultTransactionDefinition def = new DefaultTransactionDefinition(); def.setName("JE_Tx"); def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED); def.setIsolationLevel(TransactionDefinition.ISOLATION_READ_UNCOMMITTED); TransactionStatus status = txnManager.getTransaction(def); try { response.setContentType("text/html;charset=UTF-8"); out = response.getWriter(); String userid = sessionHandlerImplObj.getUserid(request); String map = request.getParameter("mapid"); HashMap<String, String> arrParam = new HashMap<String, String>(); boolean fileUpload = false; String docdesc; ArrayList<FileItem> fi = new ArrayList<FileItem>(); if (request.getParameter("fileAdd") != null) { DiskFileUpload fu = new DiskFileUpload(); fileItems = fu.parseRequest(request); documentDAOObj.parseRequest(fileItems, arrParam, fi, fileUpload); arrParam.put("IsIE", request.getParameter("IsIE")); if (arrParam.get("applicantid").equalsIgnoreCase("applicant")) { applicant = true; userid = arrParam.get("refid"); } if (StringUtil.isNullOrEmpty((String) arrParam.get("docdesc")) == false) { docdesc = (String) arrParam.get("docdesc"); } } for (int cnt = 0; cnt < fi.size(); cnt++) { String docID; if (applicant) { kmsg = hrmsExtApplDocsDAOObj.uploadFile( fi.get(cnt), userid, arrParam, profileHandlerDAOObj.getUserFullName(sessionHandlerImplObj.getUserid(request))); HrmsDocs doc = (HrmsDocs) kmsg.getEntityList().get(0); docID = doc.getDocid(); } else { kmsg = documentDAOObj.uploadFile(fi.get(cnt), userid, arrParam); Docs doc = (Docs) kmsg.getEntityList().get(0); docID = doc.getDocid(); } String companyID = sessionHandlerImplObj.getCompanyid(request); String userID = sessionHandlerImplObj.getUserid(request); String refid = arrParam.get("refid"); jobj.put("userid", userID); jobj.put("docid", docID); jobj.put("companyid", companyID); jobj.put("id", id); jobj.put("map", map); jobj.put("refid", refid); if (arrParam.get("applicantid").equalsIgnoreCase("applicant")) { hrmsExtApplDocsDAOObj.saveDocumentMapping(jobj); } else { documentDAOObj.saveDocumentMapping(jobj); } } myjobj.put("ID", id); txnManager.commit(status); } catch (Exception e) { System.out.println(e.getMessage()); txnManager.rollback(status); } finally { out.close(); } return new ModelAndView("jsonView", "model", myjobj.toString()); }
/** * Process the blog entries * * @param httpServletRequest Request * @param httpServletResponse Response * @param user {@link org.blojsom.blog.BlogUser} instance * @param context Context * @param entries Blog entries retrieved for the particular request * @return Modified set of blog entries * @throws BlojsomPluginException If there is an error processing the blog entries */ public BlogEntry[] process( HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, BlogUser user, Map context, BlogEntry[] entries) throws BlojsomPluginException { if (!authenticateUser(httpServletRequest, httpServletResponse, context, user)) { httpServletRequest.setAttribute(PAGE_PARAM, ADMIN_LOGIN_PAGE); return entries; } String username = getUsernameFromSession(httpServletRequest, user.getBlog()); if (!checkPermission(user, null, username, FILE_UPLOAD_PERMISSION)) { httpServletRequest.setAttribute(PAGE_PARAM, ADMIN_ADMINISTRATION_PAGE); addOperationResultMessage(context, "You are not allowed to upload files"); return entries; } File resourceDirectory = new File( _blojsomConfiguration.getInstallationDirectory() + _resourcesDirectory + user.getId() + "/"); String action = BlojsomUtils.getRequestValue(ACTION_PARAM, httpServletRequest); if (BlojsomUtils.checkNullOrBlank(action)) { _logger.debug("User did not request edit action"); httpServletRequest.setAttribute(PAGE_PARAM, ADMIN_ADMINISTRATION_PAGE); } else if (PAGE_ACTION.equals(action)) { _logger.debug("User requested file upload page"); httpServletRequest.setAttribute(PAGE_PARAM, FILE_UPLOAD_PAGE); } else if (UPLOAD_FILE_ACTION.equals(action)) { _logger.debug("User requested file upload action"); // Create a new disk file upload and set its parameters DiskFileUpload diskFileUpload = new DiskFileUpload(); diskFileUpload.setRepositoryPath(_temporaryDirectory); diskFileUpload.setSizeThreshold(_maximumMemorySize); diskFileUpload.setSizeMax(_maximumUploadSize); try { List items = diskFileUpload.parseRequest(httpServletRequest); Iterator itemsIterator = items.iterator(); while (itemsIterator.hasNext()) { FileItem item = (FileItem) itemsIterator.next(); // Check for the file upload form item if (!item.isFormField()) { String itemNameWithoutPath = BlojsomUtils.getFilenameFromPath(item.getName()); _logger.debug( "Found file item: " + itemNameWithoutPath + " of type: " + item.getContentType()); // Is it one of the accepted file types? String fileType = item.getContentType(); boolean isAcceptedFileType = _acceptedFileTypes.containsKey(fileType); String extension = BlojsomUtils.getFileExtension(itemNameWithoutPath); boolean isAcceptedFileExtension = true; for (int i = 0; i < _invalidFileExtensions.length; i++) { String invalidFileExtension = _invalidFileExtensions[i]; if (itemNameWithoutPath.indexOf(invalidFileExtension) != -1) { isAcceptedFileExtension = false; break; } } // If so, upload the file to the resources directory if (isAcceptedFileType && isAcceptedFileExtension) { if (!resourceDirectory.exists()) { if (!resourceDirectory.mkdirs()) { _logger.error( "Unable to create resource directory for user: "******"Unable to create resource directory"); return entries; } } File resourceFile = new File( _blojsomConfiguration.getInstallationDirectory() + _resourcesDirectory + user.getId() + "/" + itemNameWithoutPath); try { item.write(resourceFile); } catch (Exception e) { _logger.error(e); addOperationResultMessage( context, "Unknown error in file upload: " + e.getMessage()); } String resourceURL = user.getBlog().getBlogBaseURL() + _blojsomConfiguration.getResourceDirectory() + user.getId() + "/" + item.getName(); _logger.debug("Successfully uploaded resource file: " + resourceFile.toString()); addOperationResultMessage( context, "Successfully upload resource file: " + item.getName() + ". <p></p>Here is a link to <a href=\"" + resourceURL + "\">" + item.getName() + "</a>. Right-click and copy the link to the resource to use in a blog entry."); } else { if (!isAcceptedFileExtension) { _logger.error("Upload file does not have an accepted extension: " + extension); addOperationResultMessage( context, "Upload file does not have an accepted extension: " + extension); } else { _logger.error( "Upload file is not an accepted type: " + item.getName() + " of type: " + item.getContentType()); addOperationResultMessage( context, "Upload file is not an accepted type: " + item.getName() + " of type: " + item.getContentType()); } } } } } catch (FileUploadException e) { _logger.error(e); addOperationResultMessage(context, "Unknown error in file upload: " + e.getMessage()); } httpServletRequest.setAttribute(PAGE_PARAM, FILE_UPLOAD_PAGE); } else if (DELETE_UPLOAD_FILES.equals(action)) { String[] filesToDelete = httpServletRequest.getParameterValues(FILE_TO_DELETE); if (filesToDelete != null && filesToDelete.length > 0) { File deletedFile; for (int i = 0; i < filesToDelete.length; i++) { String fileToDelete = filesToDelete[i]; deletedFile = new File(resourceDirectory, fileToDelete); if (!deletedFile.delete()) { _logger.debug("Unable to delete resource file: " + deletedFile.toString()); } } addOperationResultMessage( context, "Deleted " + filesToDelete.length + " file(s) from resources directory"); } httpServletRequest.setAttribute(PAGE_PARAM, FILE_UPLOAD_PAGE); } // Create a list of files in the user's resource directory Map resourceFilesMap = null; if (resourceDirectory.exists()) { File[] resourceFiles = resourceDirectory.listFiles(); if (resourceFiles != null) { resourceFilesMap = new HashMap(resourceFiles.length); for (int i = 0; i < resourceFiles.length; i++) { File resourceFile = resourceFiles[i]; resourceFilesMap.put(resourceFile.getName(), resourceFile.getName()); } } } else { resourceFilesMap = new HashMap(); } resourceFilesMap = new TreeMap(resourceFilesMap); context.put(PLUGIN_ADMIN_FILE_UPLOAD_FILES, resourceFilesMap); return entries; }
@SuppressWarnings({"unchecked", "deprecation"}) protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response_message = ""; HttpSession session = request.getSession(); FileItem image_file = null; int record_id = 0; int image_id; InputStream instream = null; OutputStream full_outstream = null; OutputStream thumb_outstream = null; OutputStream regular_outstream = null; // Check if there is any input in the record id field if (request.getParameter("recordID") == null || request.getParameter("recordID").equals("")) { response_message = "<p><font color=ff0000>No ID entered!</font></p>"; session.setAttribute("msg", response_message); response.sendRedirect("uploadImage.jsp"); } try { // Parse the HTTP request to get the image stream DiskFileUpload fu = new DiskFileUpload(); List<FileItem> FileItems = fu.parseRequest(request); // Process the uploaded items, assuming only 1 image file uploaded Iterator<FileItem> i = FileItems.iterator(); while (i.hasNext()) { FileItem item = (FileItem) i.next(); if (item.isFormField()) { if (item.getFieldName().equals("recordID")) { record_id = Integer.parseInt(item.getString()); if (!isValidID(record_id)) { response_message = "<p><font color=ff0000>Invalid record id!</font></p>"; session.setAttribute("msg", response_message); response.sendRedirect("uploadImage.jsp"); } } // out.println(item.getFieldName() + ": " + // item.getString()); } else { image_file = item; if (image_file.getName().equals("")) { response_message = "<p><font color=ff0000>No file selected!</font></p>"; session.setAttribute("msg", response_message); response.sendRedirect("uploadImage.jsp"); } } } // Get the image stream instream = image_file.getInputStream(); BufferedImage full_image = ImageIO.read(instream); BufferedImage thumbnail = shrink(full_image, THUMBNAIL_SHRINK); BufferedImage regular_image = shrink(full_image, REGULAR_SHRINK); // Connect to the database db = new Database(); db.connect(); conn = db.getConnection(); stmt = conn.createStatement(); /* * First, to generate a unique pic_id using an SQL sequence */ ResultSet rset1 = stmt.executeQuery(SQL_IMAGE_ID); rset1.next(); image_id = rset1.getInt(1); // Insert an empty blob into the table first. Note that you have to // use the Oracle specific function empty_blob() to create an empty // blob stmt.execute( "INSERT INTO pacs_images VALUES(" + record_id + "," + image_id + ", empty_blob(), empty_blob(), empty_blob())"); // to retrieve the lob_locator // Note that you must use "FOR UPDATE" in the select statement String cmd = "SELECT * FROM pacs_images WHERE image_id = " + image_id + " FOR UPDATE"; ResultSet rset = stmt.executeQuery(cmd); rset.next(); BLOB thumb = ((OracleResultSet) rset).getBLOB("thumbnail"); BLOB regular = ((OracleResultSet) rset).getBLOB("regular_size"); BLOB full = ((OracleResultSet) rset).getBLOB("full_size"); // Write the image to the blob object full_outstream = full.getBinaryOutputStream(); ImageIO.write(full_image, "jpg", full_outstream); thumb_outstream = thumb.getBinaryOutputStream(); ImageIO.write(thumbnail, "jpg", thumb_outstream); regular_outstream = regular.getBinaryOutputStream(); ImageIO.write(regular_image, "jpg", regular_outstream); stmt.executeUpdate("commit"); response_message = "<p>Upload OK!</p>"; session.setAttribute("msg", response_message); response.sendRedirect("uploadImage.jsp"); } catch (Exception ex) { response_message = ex.getMessage(); } finally { if (instream != null) { instream.close(); } if (full_outstream != null) { full_outstream.close(); } if (thumb_outstream != null) { thumb_outstream.close(); } if (regular_outstream != null) { regular_outstream.close(); } db.close(conn, stmt, null, rset); } }
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // Variable initializations. HttpSession session = request.getSession(); FileItem image_file = null; int record_id = 0; int image_id; // Check if a record ID has been entered. if (request.getParameter("recordID") == null || request.getParameter("recordID").equals("")) { // If no ID has been entered, send message to jsp. response_message = "<p><font color=FF0000>No Record ID Detected, Please Enter One.</font></p>"; session.setAttribute("msg", response_message); response.sendRedirect("UploadImage.jsp"); } try { // Parse the HTTP request to get the image stream. DiskFileUpload fu = new DiskFileUpload(); // Will get multiple image files if that happens and can be accessed through FileItems. List<FileItem> FileItems = fu.parseRequest(request); // Connect to the database and create a statement. conn = getConnected(drivername, dbstring, username, password); stmt = conn.createStatement(); // Process the uploaded items, assuming only 1 image file uploaded. Iterator<FileItem> i = FileItems.iterator(); while (i.hasNext()) { FileItem item = (FileItem) i.next(); // Test if item is a form field and matches recordID. if (item.isFormField()) { if (item.getFieldName().equals("recordID")) { // Covert record id from string to integer. record_id = Integer.parseInt(item.getString()); String sql = "select count(*) from radiology_record where record_id = " + record_id; int count = 0; try { rset = stmt.executeQuery(sql); while (rset != null && rset.next()) { count = (rset.getInt(1)); } } catch (SQLException e) { response_message = e.getMessage(); } // Check if recordID is in the database. if (count == 0) { // Invalid recordID, send message to jsp. response_message = "<p><font color=FF0000>Record ID Does Not Exist In Database.</font></p>"; session.setAttribute("msg", response_message); // Close connection. conn.close(); response.sendRedirect("UploadImage.jsp"); } } } else { image_file = item; if (image_file.getName().equals("")) { // No file, send message to jsp. response_message = "<p><font color=FF0000>No File Selected For Record ID.</font></p>"; session.setAttribute("msg", response_message); // Close connection. conn.close(); response.sendRedirect("UploadImage.jsp"); } } } // Get the image stream. InputStream instream = image_file.getInputStream(); BufferedImage full_image = ImageIO.read(instream); BufferedImage thumbnail = shrink(full_image, 10); BufferedImage regular_image = shrink(full_image, 5); // First, to generate a unique img_id using an SQL sequence. rset1 = stmt.executeQuery("SELECT image_id_sequence.nextval from dual"); rset1.next(); image_id = rset1.getInt(1); // Insert an empty blob into the table first. Note that you have to // use the Oracle specific function empty_blob() to create an empty blob. stmt.execute( "INSERT INTO pacs_images VALUES(" + record_id + "," + image_id + ", empty_blob(), empty_blob(), empty_blob())"); // to retrieve the lob_locator // Note that you must use "FOR UPDATE" in the select statement String cmd = "SELECT * FROM pacs_images WHERE image_id = " + image_id + " FOR UPDATE"; rset = stmt.executeQuery(cmd); rset.next(); BLOB myblobFull = ((OracleResultSet) rset).getBLOB(5); BLOB myblobThumb = ((OracleResultSet) rset).getBLOB(3); BLOB myblobRegular = ((OracleResultSet) rset).getBLOB(4); // Write the full size image to the blob object. OutputStream fullOutstream = myblobFull.getBinaryOutputStream(); ImageIO.write(full_image, "jpg", fullOutstream); // Write the thumbnail size image to the blob object. OutputStream thumbOutstream = myblobThumb.getBinaryOutputStream(); ImageIO.write(thumbnail, "jpg", thumbOutstream); // Write the regular size image to the blob object. OutputStream regularOutstream = myblobRegular.getBinaryOutputStream(); ImageIO.write(regular_image, "jpg", regularOutstream); // Commit the changes to database. stmt.executeUpdate("commit"); response_message = "<p><font color=00CC00>Upload Successful.</font></p>"; session.setAttribute("msg", response_message); instream.close(); fullOutstream.close(); thumbOutstream.close(); regularOutstream.close(); // Close connection. conn.close(); response.sendRedirect("UploadImage.jsp"); instream.close(); fullOutstream.close(); thumbOutstream.close(); regularOutstream.close(); // Close connection. conn.close(); } catch (Exception ex) { response_message = ex.getMessage(); } }
private void executeDeploy(HttpServletRequest req, HttpServletResponse resp) throws IOException { String contentType = null; File packageFile = null; FileItem item = null; String serviceName = null; String fieldName = null; String token = ""; boolean forward = false; try { // checking if uploaded file is a file descriptor DiskFileUpload upload = new DiskFileUpload(); List items = upload.parseRequest(req); Iterator iter = items.iterator(); while (iter.hasNext()) { // geting item item = (FileItem) iter.next(); contentType = item.getContentType(); fieldName = item.getFieldName(); if ((fieldName != null && fieldName.equals("importFile")) || (contentType != null && contentType.contains(ZIP_DEPLOY_PACKAGE_MIME_TYPE))) { packageFile = new File(System.getProperty("java.io.tmpdir"), item.getName()); item.write(packageFile); } else if (fieldName.equals("newName")) { serviceName = item.getString(); } else if (fieldName.equals("authToken")) { token = item.getString(); } else if (fieldName.equals("forwardToPage")) { forward = true; } } String deployAdminToken = Toolbox.getInstance().getDeployAdminToken(); if (deployAdminToken != null && token.equals(deployAdminToken) == false) { resp.sendError(500); } } catch (Exception e) { resp.sendError(HttpServletResponse.SC_NOT_ACCEPTABLE); return; } if (serviceName == null || serviceName.equals("")) { serviceName = packageFile.getName(); serviceName = serviceName.substring(0, serviceName.lastIndexOf('.')); } try { ServiceManager serviceManager; serviceManager = ServiceManager.getInstance(); serviceManager.deployService(packageFile, serviceName); } catch (Exception e) { resp.sendRedirect( "selectImportOrCreate.jsp?serviceName=" + serviceName + "&error=serviceexist"); return; } if (forward == true) { resp.sendRedirect("serviceConfiguration.jsp?serviceName=" + serviceName); } else { resp.setStatus(HttpServletResponse.SC_OK); } }
@Override public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { super.doPost(request); logger.debug("Inicio."); PrintWriter out = response.getWriter(); try { CResultadoOperacion resultadoOperacion; JAASUserPrincipal jassUserPrincipal = (JAASUserPrincipal) request.getUserPrincipal(); PasarelaAdmcar.listaSesiones = (ListaSesiones) SessionsContextShared.getContextShared() .getSharedAttribute(this.getServletContext(), "UserSessions"); Sesion userSession = PasarelaAdmcar.listaSesiones.getSesion(jassUserPrincipal.getName()); Principal userPrincipal = userSession.getUserPrincipal(); Enumeration userPerms = userSession.getRoleGroup().members(); /* - antes de MultipartPostMethod - String stream = request.getParameter("mensajeXML"); logger.info("stream="+stream); */ /* MultipartPostMethod */ String stream = null; /** Recogemos los nuevos ficheros annadidos */ Hashtable fileUploads = new Hashtable(); // Create a new file upload handler DiskFileUpload upload = new DiskFileUpload(); /** Set upload parameters */ upload.setSizeThreshold(CConstantesComando.MaxMemorySize); upload.setSizeMax(CConstantesComando.MaxRequestSize); /* String yourTempDirectory= "anexos" + File.separator; upload.setRepositoryPath(yourTempDirectory); */ // Parse the request try { // request.setCharacterEncoding("ISO-8859-1"); List items = upload.parseRequest(request); // Process the uploaded items Iterator iter = items.iterator(); String sMunicipio = ""; while (iter.hasNext()) { FileItem item = (FileItem) iter.next(); String fieldName = item.getFieldName(); if (item.isFormField()) { if (fieldName.equalsIgnoreCase("mensajeXML")) { stream = item.getString("ISO-8859-1"); logger.info("MENSAJE XML:" + item.getString("ISO-8859-1")); System.out.println( "CServletLicencias.doPost mensajeXML=" + item.getString("ISO-8859-1")); } else if (fieldName.equalsIgnoreCase( com.geopista.protocol.net.EnviarSeguro.idMunicipio)) { sMunicipio = item.getString("ISO-8859-1"); userSession.setIdMunicipio(sMunicipio); } } else { CAnexo anexo = new CAnexo(); /** Debido a que el nombre del fichero puede contener acentos. */ fieldName = URLDecoder.decode(fieldName, "ISO-8859-1"); anexo.setFileName(fieldName); anexo.setContent(item.get()); fileUploads.put(fieldName, anexo); } } } catch (FileUploadBase.SizeLimitExceededException ex) { String respuesta = buildResponse( new CResultadoOperacion(false, "FileUploadBase.SizeLimitExceededException")); out.print(respuesta); out.flush(); out.close(); logger.warn("************************* FileUploadBase.SizeLimitExceededException"); return; } // ********************************************************** // ** Chequeamos // ****************************************************** if ((stream == null) || (stream.trim().equals(""))) { String respuesta = buildResponse(new CResultadoOperacion(false, "stream es null")); out.print(respuesta); out.flush(); out.close(); logger.warn("stream null or empty. stream: " + stream); return; } StringReader sw = new StringReader(stream); logger.info("sw=" + sw.toString()); CEnvioOperacion envioOperacion = (com.geopista.protocol.CEnvioOperacion) Unmarshaller.unmarshal(com.geopista.protocol.CEnvioOperacion.class, sw); logger.debug("envioOperacion.getComando(): " + envioOperacion.getComando()); // CResultadoOperacion resultadoOperacion; String numExpediente; CSolicitudLicencia solicitudLicencia; CExpedienteLicencia expedienteLicencia; Hashtable hash; Vector vector = new Vector(); switch (envioOperacion.getComando()) { case CConstantesComando.CMD_LICENCIAS_CREAR_EXPEDIENTE: solicitudLicencia = envioOperacion.getSolicitudLicencia(); expedienteLicencia = envioOperacion.getExpedienteLicencia(); /** inicio */ /* * Cargamos en una hash los nombres de los anexos de la solicitud (marcados como annadidos, borrados, sin marcar). * El contenido de los marcados como annadidos, so se encuentra en el xml, sino en la hash fileUploads. */ /* ANEXOS de solicitud. En la creacion no hay mejora de datos ni alegacion. * No tienen contenido. * Nos interesara recoger el estado (annadido, borrado) y el tipo de anexo. */ /* SOLICITUD **/ solicitudLicencia.setAnexos( actualizarAnexosUploaded(solicitudLicencia.getAnexos(), fileUploads)); resultadoOperacion = COperacionesDatabaseLicencias.crearExpedienteLicencias( solicitudLicencia, expedienteLicencia, userPrincipal, userSession.getIdMunicipio()); break; case CConstantesComando.CMD_LICENCIAS_MODIFICAR_EXPEDIENTE: solicitudLicencia = envioOperacion.getSolicitudLicencia(); expedienteLicencia = envioOperacion.getExpedienteLicencia(); /** inicio */ /* * Cargamos en una hash los nombres de los anexos de la solicitud (marcados como annadidos, borrados, sin marcar). * El contenido de los marcados como annadidos, so se encuentra en el xml, sino en la hash fileUploads. */ /* * No tienen contenido. * Nos interesara recoger el estado (annadido, borrado) y el tipo de anexo. */ /** ANEXOS SOLICITUD */ solicitudLicencia.setAnexos( actualizarAnexosUploaded(solicitudLicencia.getAnexos(), fileUploads)); /* ANEXOS MEJORA DE DATOS */ Vector vMejoras = solicitudLicencia.getMejoras(); Vector vM = new Vector(); if (vMejoras != null) { for (Enumeration e = vMejoras.elements(); e.hasMoreElements(); ) { Mejora mejora = (Mejora) e.nextElement(); mejora.setAnexos(actualizarAnexosUploaded(mejora.getAnexos(), fileUploads)); vM.add(mejora); } solicitudLicencia.setMejoras(vM); } /* ANEXOS ALEGACION */ Alegacion alegacion = expedienteLicencia.getAlegacion(); if (alegacion != null) { alegacion.setAnexos(actualizarAnexosUploaded(alegacion.getAnexos(), fileUploads)); expedienteLicencia.setAlegacion(alegacion); } resultadoOperacion = COperacionesDatabaseLicencias.modificarExpedienteLicencias( solicitudLicencia, expedienteLicencia, userPrincipal, userSession.getIdMunicipio()); break; case CConstantesComando.CMD_LICENCIAS_GET_TIPOS_LICENCIA: resultadoOperacion = new CResultadoOperacion(true, ""); resultadoOperacion.setVector(COperacionesDatabaseLicencias.getTiposLicencia()); break; case CConstantesComando.CMD_LICENCIAS_GET_TIPOS_OBRA: resultadoOperacion = new CResultadoOperacion(true, ""); resultadoOperacion.setVector(COperacionesDatabaseLicencias.getTiposObra()); break; case CConstantesComando.CMD_LICENCIAS_GET_TIPOS_ANEXO: resultadoOperacion = new CResultadoOperacion(true, ""); resultadoOperacion.setVector(COperacionesDatabaseLicencias.getTiposAnexo()); break; case CConstantesComando.CMD_LICENCIAS_GET_ESTADOS_DISPONIBLES: resultadoOperacion = new CResultadoOperacion(true, ""); expedienteLicencia = (CExpedienteLicencia) envioOperacion.getParametro(); int idTipoLicencia = new Integer(expedienteLicencia.getTipoLicenciaDescripcion()).intValue(); resultadoOperacion.setVector( COperacionesDatabaseLicencias.getEstadosDisponibles( expedienteLicencia, idTipoLicencia)); break; case CConstantesComando.CMD_LICENCIAS_GET_ESTADOS_PERMITIDOS: resultadoOperacion = new CResultadoOperacion(true, ""); expedienteLicencia = (CExpedienteLicencia) envioOperacion.getParametro(); idTipoLicencia = new Integer(expedienteLicencia.getTipoLicenciaDescripcion()).intValue(); resultadoOperacion.setVector( COperacionesDatabaseLicencias.getEstadosPermitidos( expedienteLicencia, userPerms, idTipoLicencia)); break; case CConstantesComando.CMD_LICENCIAS_GET_ESTADOS: resultadoOperacion = new CResultadoOperacion(true, ""); Vector tiposLicencia = (Vector) envioOperacion.getTiposLicencia(); resultadoOperacion.setVector(COperacionesDatabaseLicencias.getEstados(tiposLicencia)); break; case CConstantesComando.CMD_LICENCIAS_GET_VIAS_NOTIFICACION: resultadoOperacion = new CResultadoOperacion(true, ""); resultadoOperacion.setVector(COperacionesDatabaseLicencias.getViasNotificacion()); break; case CConstantesComando.CMD_LICENCIAS_GET_SOLICITUD_LICENCIA: resultadoOperacion = new CResultadoOperacion(true, ""); numExpediente = (String) envioOperacion.getParametro(); String locale = (String) envioOperacion.getParametro2(); tiposLicencia = (Vector) envioOperacion.getTiposLicencia(); resultadoOperacion = COperacionesDatabaseLicencias.getExpedienteLicencia( numExpediente, userSession.getIdMunicipio(), locale, tiposLicencia); break; case CConstantesComando.CMD_LICENCIAS_GET_SOLICITUDES_LICENCIA: resultadoOperacion = new CResultadoOperacion(true, ""); locale = (String) envioOperacion.getParametro2(); tiposLicencia = (Vector) envioOperacion.getTiposLicencia(); resultadoOperacion = COperacionesDatabaseLicencias.getSolicitudesLicencia(locale, tiposLicencia); break; case CConstantesComando.CMD_LICENCIAS_GET_SEARCHED_EXPEDIENTES: resultadoOperacion = new CResultadoOperacion(true, ""); hash = envioOperacion.getHashtable(); resultadoOperacion.setVector( COperacionesDatabaseLicencias.getSearchedExpedientes( hash, userPerms, userSession.getIdMunicipio(), envioOperacion.getTiposLicencia())); break; case CConstantesComando.CMD_LICENCIAS_GET_SEARCHED_EXPEDIENTES_PLANOS: resultadoOperacion = new CResultadoOperacion(true, ""); hash = envioOperacion.getHashtable(); resultadoOperacion.setExpedientes( COperacionesDatabaseLicencias.getSearchedExpedientesPlanos( hash, userSession.getIdMunicipio(), envioOperacion.getTiposLicencia())); resultadoOperacion.setVector( COperacionesDatabaseLicencias.getSearchedReferenciasPlanos( hash, userSession.getIdMunicipio(), envioOperacion.getTiposLicencia())); break; case CConstantesComando.CMD_LICENCIAS_GET_SEARCHED_REFERENCIAS_CATASTRALES: resultadoOperacion = new CResultadoOperacion(true, ""); hash = envioOperacion.getHashtable(); resultadoOperacion.setVector( COperacionesDatabaseLicencias.getSearchedReferenciasCatastrales( hash, userSession.getIdMunicipio())); break; case CConstantesComando.CMD_LICENCIAS_GET_SEARCHED_ADDRESSES: resultadoOperacion = new CResultadoOperacion(true, ""); hash = envioOperacion.getHashtable(); resultadoOperacion.setVector( COperacionesDatabaseLicencias.getSearchedAddresses( hash, userSession.getIdMunicipio())); break; case CConstantesComando.CMD_LICENCIAS_GET_SEARCHED_ADDRESSES_BY_NUMPOLICIA: resultadoOperacion = new CResultadoOperacion(true, ""); hash = envioOperacion.getHashtable(); resultadoOperacion.setVector( COperacionesDatabaseLicencias.getSearchedAddressesByNumPolicia( hash, userSession.getIdMunicipio())); break; case CConstantesComando.CMD_LICENCIAS_GET_SEARCHED_PERSONAS: resultadoOperacion = new CResultadoOperacion(true, ""); hash = envioOperacion.getHashtable(); resultadoOperacion.setVector( COperacionesDatabaseLicencias.getSearchedPersonas( hash, userSession.getIdMunicipio())); break; case CConstantesComando.CMD_LICENCIAS_GET_TIPOS_FINALIZACION: resultadoOperacion = new CResultadoOperacion(true, ""); resultadoOperacion.setVector(COperacionesDatabaseLicencias.getTiposFinalizacion()); break; case CConstantesComando.CMD_LICENCIAS_GET_TIPOS_TRAMITACION: resultadoOperacion = new CResultadoOperacion(true, ""); resultadoOperacion.setVector(COperacionesDatabaseLicencias.getTiposTramitacion()); break; case CConstantesComando.CMD_LICENCIAS_GET_TIPOS_NOTIFICACION: resultadoOperacion = new CResultadoOperacion(true, ""); resultadoOperacion.setVector(COperacionesDatabaseLicencias.getTiposNotificacion()); break; case CConstantesComando.CMD_LICENCIAS_GET_ESTADOS_NOTIFICACION: resultadoOperacion = new CResultadoOperacion(true, ""); resultadoOperacion.setVector(COperacionesDatabaseLicencias.getEstadosNotificacion()); break; case CConstantesComando.CMD_LICENCIAS_GET_ESTADOS_RESOLUCION: resultadoOperacion = new CResultadoOperacion(true, ""); resultadoOperacion.setVector(COperacionesDatabaseLicencias.getEstadosResolucion()); break; case CConstantesComando.CMD_LICENCIAS_GET_NOTIFICACIONES: resultadoOperacion = new CResultadoOperacion(true, ""); hash = envioOperacion.getHashtable(); resultadoOperacion.setVector(COperacionesDatabaseLicencias.getNotificaciones(hash)); break; case CConstantesComando.CMD_LICENCIAS_GET_PARCELARIO: resultadoOperacion = new CResultadoOperacion(true, ""); hash = envioOperacion.getHashtable(); resultadoOperacion.setVector( COperacionesDatabaseLicencias.getParcelario(hash, userSession.getIdMunicipio())); break; case CConstantesComando.CMD_LICENCIAS_GET_SOLICITUDES_EXPEDIENTES_INFORME: hash = envioOperacion.getHashtable(); resultadoOperacion = COperacionesDatabaseLicencias.getSolicitudesExpedientesInforme( hash, userSession.getIdMunicipio(), envioOperacion.getTiposLicencia()); break; case CConstantesComando.CMD_LICENCIAS_GET_PLANTILLAS: String aplicacion = (String) envioOperacion.getParametro(); vector = COperacionesDatabaseLicencias.getPlantillas(aplicacion); resultadoOperacion = new CResultadoOperacion(true, ""); resultadoOperacion.setVector(vector); break; case CConstantesComando.CMD_LICENCIAS_GET_NOTIFICACIONES_MENU: hash = envioOperacion.getHashtable(); vector = COperacionesDatabaseLicencias.getNotificacionesMenu( hash, userSession.getIdMunicipio(), envioOperacion.getTiposLicencia()); resultadoOperacion = new CResultadoOperacion(true, ""); resultadoOperacion.setVector(vector); break; case CConstantesComando.CMD_LICENCIAS_GET_EVENTOS: hash = envioOperacion.getHashtable(); locale = (String) envioOperacion.getParametro(); resultadoOperacion = COperacionesDatabaseLicencias.getEventos( hash, userSession.getIdMunicipio(), envioOperacion.getTiposLicencia(), locale); break; case CConstantesComando.CMD_LICENCIAS_GET_ULTIMOS_EVENTOS: hash = envioOperacion.getHashtable(); locale = (String) envioOperacion.getParametro(); resultadoOperacion = COperacionesDatabaseLicencias.getUltimosEventos( hash, userSession.getIdMunicipio(), envioOperacion.getTiposLicencia(), locale); break; case CConstantesComando.CMD_LICENCIAS_GET_EVENTOS_SIN_REVISAR: hash = envioOperacion.getHashtable(); locale = (String) envioOperacion.getParametro(); resultadoOperacion = COperacionesDatabaseLicencias.getEventosSinRevisar( hash, userSession.getIdMunicipio(), envioOperacion.getTiposLicencia(), locale); break; case CConstantesComando.CMD_LICENCIAS_GET_HISTORICO: hash = envioOperacion.getHashtable(); locale = (String) envioOperacion.getParametro(); resultadoOperacion = COperacionesDatabaseLicencias.getHistorico( hash, userSession.getIdMunicipio(), envioOperacion.getTiposLicencia(), locale); break; case CConstantesComando.CMD_LICENCIAS_GET_HISTORICO_EXPEDIENTE: hash = envioOperacion.getHashtable(); locale = (String) envioOperacion.getParametro(); resultadoOperacion = COperacionesDatabaseLicencias.getHistorico( hash, userSession.getIdMunicipio(), envioOperacion.getTiposLicencia(), locale); break; case CConstantesComando.CMD_LICENCIAS_GET_NOTIFICACIONES_PENDIENTES: hash = envioOperacion.getHashtable(); vector = COperacionesDatabaseLicencias.getNotificacionesPendientes( userSession.getIdMunicipio(), envioOperacion.getTiposLicencia()); resultadoOperacion = new CResultadoOperacion(true, ""); resultadoOperacion.setVector(vector); break; case CConstantesComando.CMD_LICENCIAS_GET_EVENTOS_PENDIENTES: resultadoOperacion = COperacionesDatabaseLicencias.getEventosPendientes( userSession.getIdMunicipio(), userPerms, envioOperacion.getTiposLicencia(), (String) envioOperacion.getParametro()); break; case CConstantesComando.CMD_LICENCIAS_BLOQUEAR_EXPEDIENTE: boolean bloquear = ((Boolean) envioOperacion.getParametro()).booleanValue(); numExpediente = envioOperacion.getExpedienteLicencia().getNumExpediente(); resultadoOperacion = COperacionesDatabaseLicencias.bloquearExpediente(numExpediente, bloquear); break; case CConstantesComando.CMD_INSERTAR_INFORME: resultadoOperacion = COperacionesDatabaseLicencias.insertarInforme( (Informe) envioOperacion.getParametro(), fileUploads); break; case CConstantesComando.CMD_LICENCIAS_ACTUALIZAR_IDSIGEM: expedienteLicencia = envioOperacion.getExpedienteLicencia(); resultadoOperacion = COperacionesDatabaseLicencias.actualizarIdSigem(expedienteLicencia); break; case CConstantesComando.CMD_LICENCIAS_OBTENER_IDSIGEM: expedienteLicencia = envioOperacion.getExpedienteLicencia(); resultadoOperacion = COperacionesDatabaseLicencias.obtenerIdSigem(expedienteLicencia); break; case CConstantesComando.CMD_LICENCIAS_ACTUALIZAR_ESTADOSIGEM: expedienteLicencia = envioOperacion.getExpedienteLicencia(); resultadoOperacion = COperacionesDatabaseLicencias.checkExpedientePublicado( expedienteLicencia, userSession.getIdMunicipio()); break; case CConstantesComando.CMD_LICENCIAS_PUBLICAR_EXPEDEINTE_SIGEM: expedienteLicencia = envioOperacion.getExpedienteLicencia(); solicitudLicencia = envioOperacion.getSolicitudLicencia(); resultadoOperacion = COperacionesDatabaseLicencias.publicarExpedienteSigem( expedienteLicencia, solicitudLicencia, userSession.getIdMunicipio()); break; case CConstantesComando.CMD_LICENCIAS_ANEXO_ALFRESCO: resultadoOperacion = COperacionesDatabaseLicencias.anexoAlfresco( envioOperacion.getSolicitudLicencia().getIdSolicitud(), envioOperacion.getSolicitudLicencia().getAnexos(), userPrincipal); break; case CConstantesComando.CMD_LICENCIAS_ANEXO_GETID: resultadoOperacion = COperacionesDatabaseLicencias.getAnexoId( (String) envioOperacion.getParametro(), (Long) envioOperacion.getParametro2()); break; default: logger.warn( "Comand not found. envioOperacion.getComando(): " + envioOperacion.getComando()); resultadoOperacion = new CResultadoOperacion(false, "Command not found"); } String respuesta = buildResponse(resultadoOperacion); out.print(respuesta); out.flush(); out.close(); } catch (Exception ex) { StringWriter sw = new StringWriter(); PrintWriter pw = new PrintWriter(sw); ex.printStackTrace(pw); logger.error("Exception: " + sw.toString()); } }