Example usage for org.springframework.web.multipart MultipartFile getInputStream

List of usage examples for org.springframework.web.multipart MultipartFile getInputStream

Introduction

In this page you can find the example usage for org.springframework.web.multipart MultipartFile getInputStream.

Prototype

@Override
InputStream getInputStream() throws IOException;

Source Link

Document

Return an InputStream to read the contents of the file from.

Usage

From source file:org.opentravel.pubs.controllers.AdminController.java

@RequestMapping({ "/DoUpdateSpecification.html", "/DoUpdateSpecification.htm" })
public String doUpdateSpecificationPage(HttpSession session, Model model, RedirectAttributes redirectAttrs,
        @ModelAttribute("specificationForm") SpecificationForm specificationForm,
        @RequestParam(value = "archiveFile", required = false) MultipartFile archiveFile) {
    String targetPage = "updateSpecification";
    try {/*from  w  w w .j  av  a 2s.  c o  m*/
        if (specificationForm.isProcessForm()) {
            PublicationDAO pDao = DAOFactoryManager.getFactory().newPublicationDAO();
            Publication publication = pDao.getPublication(specificationForm.getPublicationId());
            PublicationType publicationType = resolvePublicationType(specificationForm.getSpecType());
            PublicationState publicationState = (specificationForm.getPubState() == null) ? null
                    : PublicationState.valueOf(specificationForm.getPubState());

            publication.setName(StringUtils.trimString(specificationForm.getName()));
            publication.setType(publicationType);
            publication.setState(publicationState);

            try {
                ValidationResults vResults = ModelValidator.validate(publication);

                // Before we try to update the contents of the spefication, validate the
                // publication object to see if there are any errors.
                if (vResults.hasViolations()) {
                    throw new ValidationException(vResults);
                }

                if (!archiveFile.isEmpty()) {
                    pDao.updateSpecification(publication, archiveFile.getInputStream());
                }
                model.asMap().clear();
                redirectAttrs.addAttribute("publication", publication.getName());
                redirectAttrs.addAttribute("specType", publication.getType());
                targetPage = "redirect:/admin/ViewSpecification.html";

            } catch (ValidationException e) {
                addValidationErrors(e, model);

            } catch (Throwable t) {
                log.error("An error occurred while updating the spec: ", t);
                setErrorMessage(t.getMessage(), model);
            }
        }

    } catch (Throwable t) {
        log.error("Error during publication controller processing.", t);
        setErrorMessage(DEFAULT_ERROR_MESSAGE, model);
    }
    return applyCommonValues(model, targetPage);
}

From source file:com.wavemaker.studio.StudioService.java

@ExposeToClient
public FileUploadResponse uploadExtensionZip(MultipartFile file) {
    FileUploadResponse ret = new FileUploadResponse();
    java.io.File tmpDir;//  w  ww .  jav a  2  s .  c o m
    try {
        java.io.File webapproot = new java.io.File(WMAppContext.getInstance().getAppContextRoot());

        String filename = file.getOriginalFilename();
        int dotindex = filename.lastIndexOf(".");
        String ext = dotindex == -1 ? "" : filename.substring(dotindex + 1);
        if (dotindex == -1) {
            throw new IOException("Please upload a zip file");
        } else if (!ext.equals("zip")) {
            throw new IOException("Please upload a zip file, not a " + ext + " file");
        }

        String originalName = file.getOriginalFilename();
        tmpDir = new java.io.File(webapproot, "tmp");
        com.wavemaker.common.util.IOUtils.makeDirectories(tmpDir, webapproot);

        java.io.File outputFile = new java.io.File(tmpDir, originalName);
        String newName = originalName.replaceAll("[ 0-9()]*.zip$", "");
        System.out.println("OLD NAME:" + originalName + "; NEW NAME:" + newName);
        FileOutputStream fos = new FileOutputStream(outputFile);
        com.wavemaker.common.util.IOUtils.copy(file.getInputStream(), fos);
        file.getInputStream().close();
        fos.close();
        java.io.File extFolder = com.wavemaker.tools.project.ResourceManager
                .unzipFile(this.fileSystem, new FileSystemResource(outputFile)).getFile();

        /*
         * Import the pages from the pages folder STATUS: DONE
         */
        java.io.File webapprootPages = new java.io.File(webapproot, "pages");
        java.io.File pagesFolder = new java.io.File(extFolder, "pages");
        java.io.File[] pages = pagesFolder.listFiles();
        for (int i = 0; i < pages.length; i++) {
            com.wavemaker.common.util.IOUtils.copy(pages[i],
                    new java.io.File(webapprootPages, pages[i].getName()));
        }

        /*
         * Import the language files from the dictionaries folder and subfolder STATUS: DONE
         */
        java.io.File dictionaryDest = new java.io.File(webapproot, "language/nls");
        java.io.File dictionarySrc = new java.io.File(extFolder, "language/nls");
        java.io.File[] languages = dictionarySrc.listFiles();
        for (int i = 0; i < languages.length; i++) {
            if (languages[i].isDirectory()) {
                System.out.println("GET LISTING OF " + languages[i].getName());
                java.io.File[] languages2 = languages[i].listFiles();
                for (int j = 0; j < languages2.length; j++) {
                    System.out.println("COPY " + languages2[j].getName() + " TO "
                            + new java.io.File(dictionaryDest, languages[i].getName()).getAbsolutePath());
                    com.wavemaker.common.util.IOUtils.copy(languages2[j],
                            new java.io.File(dictionaryDest, languages[i].getName()));
                }
            } else {
                com.wavemaker.common.util.IOUtils.copy(languages[i], dictionaryDest);
            }
        }

        /*
         * Import the designtime jars STATUS: DONE
         */
        java.io.File studioLib = new java.io.File(webapproot, "WEB-INF/lib");
        java.io.File designtimeFolder = new java.io.File(extFolder, "designtime");
        java.io.File[] designJars = designtimeFolder.listFiles();
        for (int i = 0; i < designJars.length; i++) {
            com.wavemaker.common.util.IOUtils.copy(designJars[i], studioLib);
        }

        /*
         * Import the runtime jars STATUS: DONE
         */
        java.io.File templatesPwsFolder = new java.io.File(webapproot, "app/templates/pws/" + newName);
        java.io.File templatesPwsWEBINFFolder = new java.io.File(templatesPwsFolder, "WEB-INF");
        java.io.File templatesPwsWEBINFLibFolder = new java.io.File(templatesPwsWEBINFFolder, "lib");
        /* Delete any old jars from prior imports */
        if (templatesPwsFolder.exists()) {
            com.wavemaker.common.util.IOUtils.deleteRecursive(templatesPwsFolder);
        }

        com.wavemaker.common.util.IOUtils.makeDirectories(templatesPwsWEBINFLibFolder, webapproot);

        java.io.File runtimeFolder = new java.io.File(extFolder, "runtime");
        java.io.File[] runJars = runtimeFolder.listFiles();
        for (int i = 0; i < runJars.length; i++) {
            com.wavemaker.common.util.IOUtils.copy(runJars[i], studioLib);
            com.wavemaker.common.util.IOUtils.copy(runJars[i], templatesPwsWEBINFLibFolder);
        }

        /*
         * Import packages.js
         */
        java.io.File packagesFile = new java.io.File(webapproot, "app/packages.js");
        String packagesExt = "";
        try {
            // Get the packages.js file from our extensions.zip file */
            packagesExt = com.wavemaker.common.util.IOUtils.read(new java.io.File(extFolder, "packages.js"));
        } catch (Exception e) {
            packagesExt = "";
        }
        /* If there is a packages file provided... */
        if (packagesExt.length() > 0) {
            /* Build the string we're appending to packages.js */
            String startPackagesExt = "/* START PARTNER " + newName + " */\n";
            String endPackagesExt = "/* END PARTNER " + newName + " */\n";
            packagesExt = ",\n" + startPackagesExt + packagesExt + "\n" + endPackagesExt;

            String packages = com.wavemaker.common.util.IOUtils.read(packagesFile);

            /* Remove previous packages entries for this partner */
            int packagesStartIndex = packages.indexOf(startPackagesExt);
            if (packagesStartIndex != -1) {
                packagesStartIndex = packages.lastIndexOf(",", packagesStartIndex);
                int packagesEndIndex = packages.indexOf(endPackagesExt);
                if (packagesEndIndex != -1) {
                    packagesEndIndex += endPackagesExt.length();
                    packages = packages.substring(0, packagesStartIndex) + packages.substring(packagesEndIndex);
                }
            }

            /* Append the string to packages.js and write it */
            packages += packagesExt;
            com.wavemaker.common.util.IOUtils.write(packagesFile, packages);
        }

        /*
         * Import spring config files STATUS: DONE
         */
        java.io.File webinf = new java.io.File(webapproot, "WEB-INF");
        java.io.File designxml = new java.io.File(extFolder, newName + "-tools-beans.xml");
        java.io.File runtimexml = new java.io.File(extFolder, newName + "-runtime-beans.xml");
        com.wavemaker.common.util.IOUtils.copy(designxml, webinf);
        com.wavemaker.common.util.IOUtils.copy(runtimexml, webinf);
        com.wavemaker.common.util.IOUtils.copy(runtimexml, templatesPwsWEBINFFolder);

        /*
         * Modify Spring files to include beans in the partner package.
         */
        java.io.File studioSpringApp = new java.io.File(webinf, "studio-springapp.xml");
        PwsInstall.insertImport(studioSpringApp, newName + "-tools-beans.xml");
        PwsInstall.insertImport(studioSpringApp, newName + "-runtime-beans.xml");

        java.io.File studioPartnerBeans = new java.io.File(webinf, "studio-partner-beans.xml");
        PwsInstall.insertEntryKey(studioPartnerBeans, runJars, designJars, newName);

        java.io.File templatesPwsRootFolder = new java.io.File(webapproot, "app/templates/pws/");
        java.io.File templatesPwsRootWEBINFFolder = new java.io.File(templatesPwsRootFolder, "WEB-INF");
        java.io.File projectSpringApp = new java.io.File(templatesPwsRootWEBINFFolder, "project-springapp.xml");
        PwsInstall.insertImport(projectSpringApp, newName + "-runtime-beans.xml");

        java.io.File projectPartnerBeans = new java.io.File(templatesPwsRootWEBINFFolder,
                "project-partner-beans.xml");
        PwsInstall.insertEntryKey(projectPartnerBeans, runJars, designJars, newName);

        ret.setPath("/tmp");
        ret.setError("");
        ret.setWidth("");
        ret.setHeight("");

    } catch (Exception e) {
        ret.setError(e.getMessage());
        return ret;
    }

    try {
        com.wavemaker.common.util.IOUtils.deleteRecursive(tmpDir);
    } catch (Exception e) {
        return ret;
    }
    return ret;
}

From source file:com.node.action.UserAction.java

private String uploadImg(HttpServletRequest request, MultipartFile file)
        throws FileNotFoundException, IOException {
    if (!file.isEmpty()) {
        PicPath imgPath = iCompanyService.getPathById(SystemConstants.PIC_IMG);
        String source = imgPath.getVcAddpath();// ?
        SimpleDateFormat format = new SimpleDateFormat("yyMMdd");
        source = source + "/" + format.format(new Date());
        if (!source.endsWith("/")) {
            source += "/";
        }// w w  w.  jav a 2  s  .co m
        if (StringUtils.isBlank(source)) {
            System.out.println("source??");
            return null;
        }
        String getImagePath = source;

        // ???
        String uploadName = file.getContentType();
        System.out.println(" ------------" + uploadName);

        String lastuploadName = uploadName.substring(uploadName.indexOf("/") + 1, uploadName.length());
        System.out.println("??? ------------" + lastuploadName);

        // ??
        String fileNewName = generateFileName(file.getOriginalFilename());
        System.out.println("// ?? ------------" + fileNewName);

        // ?
        String imagePath = source + "/" + fileNewName;
        System.out.println("        //?   " + imagePath);
        File image = new File(getImagePath);
        if (!image.exists()) {
            image.mkdir();
        }
        // file.transferTo(pathFile);
        BufferedImage srcBufferImage = ImageIO.read(file.getInputStream());
        BufferedImage scaledImage;
        ScaleImage scaleImage = new ScaleImage();
        int yw = srcBufferImage.getWidth();
        int yh = srcBufferImage.getHeight();
        int w = SystemConstants.IMG_LICENCE_WITH, h = SystemConstants.IMG_LICENCE_HEIGHT;
        if (w > yw && h > yh) {
            File image2 = new File(getImagePath, fileNewName);
            file.transferTo(image2);
        } else {
            scaledImage = scaleImage.imageZoomOut(srcBufferImage, w, h);
            FileOutputStream out = new FileOutputStream(getImagePath + "/" + fileNewName);
            ImageIO.write(scaledImage, "jpeg", out);
            out.close();
        }
        return format.format(new Date()) + "/" + fileNewName;// ????
    } else {
        return null;
    }
}

From source file:com.glaf.core.web.springmvc.MxDiskFileUploadJsonController.java

@RequestMapping
public void upload(HttpServletRequest request, HttpServletResponse response) throws Exception {
    response.setContentType("text/html; charset=UTF-8");
    String businessKey = request.getParameter("businessKey");
    String serviceKey = request.getParameter("serviceKey");
    // ?//from w w w .jav a  2 s  . com
    LoginContext loginContext = RequestUtils.getLoginContext(request);
    String savePath = SystemProperties.getAppPath() + "/upload/" + loginContext.getUser().getId() + "/";
    // ?URL
    String saveUrl = request.getContextPath() + "/upload/" + loginContext.getUser().getId() + "/";
    if (StringUtils.isNotEmpty(serviceKey)) {
        saveUrl = saveUrl + serviceKey + "/";
    }
    // ???
    String[] fileTypes = new String[] { "gif", "jpg", "jpeg", "png", "bmp", "swf" };
    // ?
    long maxSize = 10240000;

    String allowSize = CustomProperties.getString("upload.maxSize");
    if (StringUtils.isEmpty(allowSize)) {
        allowSize = SystemProperties.getString("upload.maxSize");
    }

    if (StringUtils.isNotEmpty(allowSize) && StringUtils.isNumeric(allowSize)) {
        maxSize = Long.parseLong(allowSize);
    }

    // 
    File uploadDir = new File(savePath);
    try {
        if (!uploadDir.exists()) {
            FileUtils.mkdirs(savePath);
        }
    } catch (Exception ex) {
    }

    if (!uploadDir.isDirectory()) {
        response.getWriter().write(getError("?"));
        return;
    }
    // ??
    if (!uploadDir.canWrite()) {
        response.getWriter().write(getError("??"));
        return;
    }

    MultipartHttpServletRequest req = (MultipartHttpServletRequest) request;
    Map<String, MultipartFile> fileMap = req.getFileMap();
    Set<Entry<String, MultipartFile>> entrySet = fileMap.entrySet();
    for (Entry<String, MultipartFile> entry : entrySet) {
        MultipartFile mFile = entry.getValue();
        if (mFile.getOriginalFilename() != null && mFile.getSize() > 0) {
            // ?
            if (mFile.getSize() > maxSize) {
                response.getWriter().write(getError("??"));
                return;
            }
            String fileName = mFile.getOriginalFilename();
            // ??
            String fileExt = fileName.substring(fileName.lastIndexOf(".") + 1).toLowerCase();
            if (!Arrays.<String>asList(fileTypes).contains(fileExt)) {
                response.getWriter().write(getError("??????"));
                return;
            }
            SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss");
            String newFileName = df.format(new Date()) + "_" + new Random().nextInt(10000) + "." + fileExt;
            try {
                DataFile dataFile = new BlobItemEntity();
                dataFile.setBusinessKey(businessKey);
                dataFile.setCreateBy(loginContext.getActorId());
                dataFile.setCreateDate(new Date());
                dataFile.setFileId(newFileName);
                dataFile.setLastModified(System.currentTimeMillis());
                dataFile.setName(fileName);
                if (StringUtils.isNotEmpty(serviceKey)) {
                    dataFile.setServiceKey(serviceKey);
                } else {
                    dataFile.setServiceKey("IMG_" + loginContext.getActorId());
                }
                dataFile.setFilename(fileName);
                dataFile.setType(fileExt);
                dataFile.setSize(mFile.getSize());
                dataFile.setStatus(1);
                blobService.insertBlob(dataFile);

                FileUtils.save(savePath + sp + newFileName, mFile.getInputStream());

            } catch (Exception ex) {
                ex.printStackTrace();
                response.getWriter().write(getError("?"));
                return;
            }

            JSONObject object = new JSONObject();
            object.put("error", 0);
            object.put("url", saveUrl + newFileName);
            response.getWriter().write(object.toString());
        }
    }
}

From source file:com.wonders.bud.freshmommy.web.content.controller.ContentController.java

/**
 * <p>//from  w  ww.  j a v a 2  s.  co m
 * Description:[?]
 * </p>
 * 
 * Created by [Dy] [20141124]
 * Midified by [] []
 * @param request
 * @param response
 * @param session
 * @return
 * @throws Exception
 * @throws IOException
 */
@RequestMapping(value = "/addImg", method = RequestMethod.POST)
@ResponseBody
public RestMsg<Map<String, String>> addImg(HttpServletRequest request) throws Exception, IOException {

    RestMsg<Map<String, String>> rm = new RestMsg<Map<String, String>>();
    try {
        // MultipartHttpRequest
        MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
        // 
        MultipartFile file = multipartRequest.getFile("imgfile");

        if (file.getContentType().toLowerCase().indexOf("image") < 0) {
            rm = rm.errorMsg("??");
        } else {

            // ??
            String actionPath = request.getSession().getServletContext().getRealPath("");
            String uuid = UUID.randomUUID().toString();
            //
            StringBuffer fileName = new StringBuffer();
            fileName.append(actionPath).append(File.separator).append(CONTENT_CONTENT_IMG).append(uuid)
                    .append(".png");
            //
            StringBuffer minFileName = new StringBuffer();
            minFileName.append(actionPath).append(File.separator).append(CONTENT_TITLE_IMG).append(uuid)
                    .append(".png");

            File imgFolder = new File(fileName.toString());
            if (!imgFolder.getParentFile().exists()) { // 
                imgFolder.getParentFile().mkdirs();
            }

            File minImgFolder = new File(minFileName.toString());
            if (!minImgFolder.getParentFile().exists()) { // 
                minImgFolder.getParentFile().mkdirs();
            }

            //
            BufferedImage sourceImg = ImageIO.read(file.getInputStream());
            float heigth = sourceImg.getHeight();
            float width = sourceImg.getWidth();
            double scale = 1;
            double sH = heigth / 150;
            double sW = width / 150;
            scale = sH < sW ? sH : sW;
            int rheigth = new Double(scale * 200).intValue();
            int rwidth = new Double(scale * 200).intValue();

            //?

            Thumbnails.of(file.getInputStream()).scale(1).toFile(fileName.toString());
            Thumbnails.of(file.getInputStream()).sourceRegion(Positions.CENTER, rwidth, rheigth).size(200, 200)
                    .keepAspectRatio(false).toFile(minFileName.toString());

            Map<String, String> map = new HashMap<String, String>();
            map.put("titleImg", CONTENT_TITLE_IMG + uuid + ".png");
            map.put("contentImg", CONTENT_CONTENT_IMG + uuid + ".png");
            rm = rm.successMsg();
            rm.setResult(map);
        }
    } catch (Exception e) {
        log.error(e.getLocalizedMessage());
        rm.errorMsg("?");
    }
    return rm;
}

From source file:com.topsec.tsm.sim.asset.web.AssetListController.java

/**
 * ?excel//from ww  w. ja  v a 2  s  . c  om
 * @param file
 */
private List<Device> xlsToMap(MultipartFile file, SID sid) {
    List<Device> deviceList = new ArrayList<Device>();
    formatErrorMap = new HashMap<String, String>();
    dataConflictErrorMap = new HashMap<String, String>();
    marks = new ArrayList<ErrorMark>();
    AssGroupService assGroupService = (AssGroupService) SpringContextServlet.springCtx
            .getBean("assetGroupService");
    try {
        InputStream instream = file.getInputStream();
        ExcelOperaterManager excelOperaterManager = null;
        String[][] defaultCellArr = null;
        try {
            excelOperaterManager = new ExcelOperaterManager(instream, 0, ExcelOperaterPOI.IMPORT_ASSET_NO + 1,
                    0);
            defaultCellArr = excelOperaterManager.getDefaultCellArr();
        } catch (Exception e) {
            formatErrorMap.put("fileError", "?Excel????? ");
            return deviceList;
        }
        if (null == defaultCellArr || defaultCellArr.length < 1) {
            return deviceList;
        }
        boolean status = false;
        String defaultNodeId = nodeMgr.getKernelAuditor(false).getNodeId();
        for (int i = 0; i < defaultCellArr.length; i++) {
            String[] strings = defaultCellArr[i];
            if ("IP(*)".equals(strings[1])) {
                continue;
            }
            for (int j = 0; j < 6; j++) {
                if (StringUtil.isBlank(strings[j])) {
                    status = true;
                    if (StringUtil.isNotBlank(strings[0]) && StringUtil.isNotBlank(strings[1])) {
                        formatErrorMap.put(strings[0], "?");
                        ErrorMark errorMark = new ErrorMark();
                        errorMark.setSerialId(blankSetString(strings[0]));
                        errorMark.setDeviceIp(blankSetString(strings[1]));
                        errorMark.setDeviceName(blankSetString(strings[2]));
                        errorMark.setErrorContent("?");
                        marks.add(errorMark);
                    }
                    break;
                }
            }
            if (status) {
                status = false;
                continue;
            }
            if (!isIp(strings[1])) {
                formatErrorMap.put(strings[0], "IP??");
                ErrorMark errorMark = new ErrorMark();
                errorMark.setSerialId(blankSetString(strings[0]));
                errorMark.setDeviceIp(blankSetString(strings[1]));
                errorMark.setDeviceName(blankSetString(strings[2]));
                errorMark.setErrorContent("IP??");
                marks.add(errorMark);
                continue;
            }
            if ("".equals(strings[3]) || "".equals(strings[4])
                    || "".equals(strings[5]) || strings[3].indexOf("_") < 0
                    || strings[4].indexOf("_") < 0 || strings[3].indexOf("_") != strings[3].lastIndexOf("_")
                    || strings[4].indexOf("_") != strings[4].lastIndexOf("_")
                    || strings[3].lastIndexOf("_") >= (strings[3].length() - 1)
                    || strings[4].lastIndexOf("_") >= (strings[4].length() - 1)) {
                formatErrorMap.put(strings[0], "?");
                ErrorMark errorMark = new ErrorMark();
                errorMark.setSerialId(blankSetString(strings[0]));
                errorMark.setDeviceIp(blankSetString(strings[1]));
                errorMark.setDeviceName(blankSetString(strings[2]));
                errorMark.setErrorContent("? ");
                marks.add(errorMark);
                continue;
            }
            Device device = new Device();
            OsPlatform os = new OsPlatform();
            if ("".equals(strings[7]) || StringUtil.isBlank(strings[7])) {
                os.setOsName("");
            } else {
                os.setOsName(strings[7]);
            }
            device.setOs(os);
            if ("".equals(strings[8]) || StringUtil.isBlank(strings[8])) {
                device.setSafeRank("");
            } else {
                device.setSafeRank(blankSetString(strings[8]));
            }
            device.setAssGroup(new AssGroup(-1));
            //?
            device.setExternalId(strings[0]);
            device.setName(strings[2]);
            device.setHostName(blankSetString(strings[6]));
            device.setAlias(strings[2]);
            device.setAssetType(AssetType.DEVICE);
            device.setEnabled(0);//??
            device.setMasterIp(new IpAddress(strings[1]));
            device.setMac(blankSetString(strings[10]));

            String firstString = strings[3].split("_")[1];
            String secordString = strings[4].split("_")[1];
            device.setDeviceType(firstString + "/" + secordString);//and strings[4]
            device.setDeviceTypeName(
                    DeviceTypeShortKeyUtil.getInstance().deviceTypeToCN(device.getDeviceType(), "/"));
            Node node = nodeMgr.getAuditorOrAgentByIp(strings[5].trim());
            device.setScanNodeId(node != null ? node.getNodeId() : defaultNodeId);

            //            device.setDeviceTypeName(blankSetString(strings[15]));
            device.setManufacturer(blankSetString(strings[11]));
            device.setLocation(blankSetString(strings[12]));
            device.setLinkman(blankSetString(strings[13]));
            device.setServices(blankSetString(strings[14]));
            //            device.setServices("services") ;
            //            device.setNote("note") ;//2??
            device.setIsDelete("false");
            device.setCreator(sid.getUserName());
            deviceList.add(device);
            device = null;
        }
    } catch (IOException e) {
    }
    return deviceList;
}

From source file:org.openmrs.module.sdmxhddataexport.web.controller.dataelement.DataElementController.java

@RequestMapping(value = "/module/sdmxhddataexport/listDataElement.form", method = RequestMethod.POST)
public String deleteDataElement(@RequestParam(value = "ids", required = false) String[] ids,
        @RequestParam(value = "files", required = false) MultipartFile uploadItem, HttpServletRequest request,
        @RequestParam(value = "upload", required = false) String upload,
        @RequestParam(value = "IncludeQueries", required = false) String IncludeQueries, Object command,
        SessionStatus status) {//from   www.  ja  va 2  s .com
    String temp = "";
    HttpSession httpSession = request.getSession();
    Integer dataElementId = null;
    System.out.println(" done " + upload);
    if (upload != null) {
        System.out.println("1st part truly done");
        //FileUpload file = uploadItem;
        String fileName = "";
        if (uploadItem != null) {
            fileName = uploadItem.getOriginalFilename();
            System.out.println("2nd part truly done " + fileName);

            byte[] byteArray = null;
            try {
                byteArray = uploadItem.getBytes();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                System.out.println("Bad file name");

                e.printStackTrace();
            }

            String data = new String(byteArray);
            System.out.println("3rd part truly done " + data);
            XPath xpath = XPathFactory.newInstance().newXPath();
            DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance();
            domFactory.setNamespaceAware(true);
            DocumentBuilder builder = null;
            try {
                builder = domFactory.newDocumentBuilder();
            } catch (ParserConfigurationException e) {
                e.printStackTrace();

            }
            Document doc = null;
            try {
                doc = builder.parse(uploadItem.getInputStream());
            } catch (SAXException e1) {
                httpSession.setAttribute(WebConstants.OPENMRS_MSG_ATTR,
                        "Unsupported Document type is uploaded ");

                //or we can use httpSession.setAttribute(WebConstants.OPENMRS_MSG_ATTR, "sdmxhddataexport.UploadedFile.Wrong" );

                return "redirect:/module/sdmxhddataexport/listDataElement.form";

            } catch (IOException e1) {
                // TODO Auto-generated catch block
                httpSession.setAttribute(WebConstants.OPENMRS_MSG_ATTR, "error in reading Document type  ");

                //e1.printStackTrace();

            }
            XPathExpression expr = null;
            XPathExpression exprDesc = null;
            XPathExpression exprQuery = null;
            try {
                expr = xpath.compile(
                        "//*[local-name(.)='CodeList' and @id='CL_DATAELEMENT']/*[local-name(.)='Code']");
                exprDesc = xpath.compile("//[local-name(.)='Description']");

                exprQuery = xpath.compile("//[local-name(.)='Query']");
            } catch (XPathExpressionException e) {
                httpSession.setAttribute(WebConstants.OPENMRS_MSG_ATTR, "Error parsing document ");

            }
            Object result = null;
            try {
                result = expr.evaluate(doc, XPathConstants.NODESET);
            } catch (XPathExpressionException e) {
                httpSession.setAttribute(WebConstants.OPENMRS_MSG_ATTR, "Error parsing document ");

                // e.printStackTrace();
            }
            NodeList nodes = (NodeList) result;
            ArrayList<DataElement> dataElements = new ArrayList<DataElement>();
            for (int i = 0; i < nodes.getLength(); i++) {
                boolean putItIn = false;
                DataElement de = new DataElement();
                System.out.println(nodes.item(i).getLocalName());

                NamedNodeMap nmp = nodes.item(i).getAttributes();
                System.out.println(nmp.getNamedItem("value").getNodeValue() + "  hellooo..");
                de.setCode(nmp.getNamedItem("value").getNodeValue());
                //Node tempNode = (Node)nodes.item(i); 
                NodeList innerNodeList = nodes.item(i).getChildNodes();
                System.out.println("length: " + innerNodeList.getLength());
                for (int j = 0; j < innerNodeList.getLength(); j++) {
                    if (innerNodeList.item(j).getLocalName() != null) {
                        System.out.println("hehe " + innerNodeList.item(j).getLocalName());
                        if (innerNodeList.item(j).getLocalName().equals(new String("Description"))) {
                            System.out.println("Description: " + innerNodeList.item(j).getTextContent());
                            de.setName(innerNodeList.item(j).getTextContent());

                            putItIn = true;
                        }

                        if (innerNodeList.item(j).getLocalName().equals(new String("Query"))
                                && IncludeQueries != null) {
                            System.out.println("Query: " + innerNodeList.item(j).getTextContent());
                            de.setSqlQuery(innerNodeList.item(j).getTextContent());
                        }
                    }
                }
                if (putItIn) {

                    boolean bool;
                    DataElementValidator valid = new DataElementValidator();
                    bool = valid.fileValidate(de);
                    if (bool == true)
                        dataElements.add(de);

                }
            }
            ListIterator<DataElement> li = dataElements.listIterator();
            DataElement de;
            while (li.hasNext()) {
                de = (DataElement) li.next();
                System.out.println("Element 1 = " + de.getName());
                de.setCreatedOn(new java.util.Date());
                de.setCreatedBy(Context.getAuthenticatedUser().getGivenName());
                SDMXHDDataExportService sDMXHDDataExportService = Context
                        .getService(SDMXHDDataExportService.class);

                sDMXHDDataExportService.saveDataElement(de);

            }

            status.setComplete();
        }

        return "redirect:/module/sdmxhddataexport/listDataElement.form";
    }
    try {
        SDMXHDDataExportService sDMXHDDataExportService = Context.getService(SDMXHDDataExportService.class);
        if (ids != null && ids.length > 0) {
            for (String sId : ids) {
                dataElementId = Integer.parseInt(sId);
                if (dataElementId != null && dataElementId > 0 && CollectionUtils.isEmpty(
                        sDMXHDDataExportService.listReportDataElement(null, dataElementId, null, 0, 1))) {
                    sDMXHDDataExportService
                            .deleteDataElement(sDMXHDDataExportService.getDataElementById(dataElementId));
                } else {
                    //temp += "We can't delete store="+store.getName()+" because that store is using please check <br/>";
                    temp = "This dataElement cannot be deleted as it is in use";
                }
            }
        }
    } catch (Exception e) {
        httpSession.setAttribute(WebConstants.OPENMRS_MSG_ATTR, "Can not delete dataElement ");
        log.error(e);
    }
    httpSession.setAttribute(WebConstants.OPENMRS_MSG_ATTR,
            StringUtils.isBlank(temp) ? "sdmxhddataexport.dataElement.deleted" : temp);

    return "redirect:/module/sdmxhddataexport/listDataElement.form";
}

From source file:org.openmrs.module.reportingsummary.web.controller.summary.GenerateSummariesController.java

@RequestMapping(method = RequestMethod.POST)
public void process(final @RequestParam(required = true, value = "template") MultipartFile template,
        final HttpServletResponse response) throws IOException, EvaluationException {

    PatientDataSetDefinition definition = new PatientDataSetDefinition();

    definition.addColumn("id", new PatientIdDataDefinition(), StringUtils.EMPTY, new ObjectFormatter());

    ListConverter listConverter = new ListConverter();
    listConverter.setMaxNumberOfItems(1);

    PatientIdentifierDataDefinition preferredIdentifier = new PatientIdentifierDataDefinition();
    definition.addColumn("identifier", preferredIdentifier, StringUtils.EMPTY, listConverter);

    definition.addColumn("name", new PreferredNameDataDefinition(), StringUtils.EMPTY,
            new ObjectFormatter("{familyName}, {givenName}"));

    AgeDataDefinition ageOnDate = new AgeDataDefinition();
    ageOnDate.addParameter(new Parameter("effectiveDate", "effective date", Date.class));
    definition.addColumn("age", ageOnDate, "effectiveDate=${currentDate}", new AgeConverter());

    definition.addColumn("birthdate", new BirthdateDataDefinition(), StringUtils.EMPTY,
            new BirthdateConverter("dd-MMM-yyyy"));
    definition.addColumn("gender", new GenderDataDefinition(), StringUtils.EMPTY, new ObjectFormatter());

    ReportDefinition reportDefinition = new ReportDefinition();
    reportDefinition.setName("Test Report");
    reportDefinition.addDataSetDefinition("PatientDataSetDefinition", definition, null);

    final ReportDesign design = new ReportDesign();
    design.setName("Test Report Design With Excel Template Renderer");
    design.setReportDefinition(reportDefinition);
    design.setRendererType(ExcelTemplateRenderer.class);

    Properties properties = new Properties();
    properties.put("repeatingSections", "sheet:1,dataset:PatientDataSetDefinition");
    design.setProperties(properties);/*from www .j  a  v  a 2 s. c  o  m*/

    ReportDesignResource resource = new ReportDesignResource();
    resource.setName("excel-template.xls");
    Properties props = new Properties();
    InputStream inputStream = template.getInputStream();
    resource.setContents(IOUtils.toByteArray(inputStream));
    IOUtils.closeQuietly(inputStream);
    design.addResource(resource);

    ExcelTemplateRenderer renderer = new ExcelTemplateRenderer() {
        public ReportDesign getDesign(String argument) {
            return design;
        }
    };

    ReportDefinitionService rs = Context.getService(ReportDefinitionService.class);
    ReportData data = rs.evaluate(reportDefinition, prepareEvaluationContext());

    CsvReportRenderer csvReportRenderer = new CsvReportRenderer();
    csvReportRenderer.render(data, "output:csv", System.out);

    File file = File.createTempFile("excel", "summary");
    BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(new FileOutputStream(file));
    renderer.render(data, "output:xls", bufferedOutputStream);
    bufferedOutputStream.close();

    response.setHeader("Content-Disposition", "attachment; filename=patient-summary.xls");
    response.setContentType("application/vnd.ms-excel");
    response.setContentLength((int) file.length());

    FileCopyUtils.copy(new FileInputStream(file), response.getOutputStream());
    if (file.delete())
        log.info("Temporary file deleted!");
}

From source file:org.openmeetings.servlet.outputhandler.BackupImportController.java

@RequestMapping(value = "/backup.upload", method = RequestMethod.POST)
public void service(HttpServletRequest request, HttpServletResponse httpServletResponse)
        throws ServletException, IOException {

    UploadInfo info = validate(request, true);
    try {//from w  w w.java  2  s .  co  m
        String current_dir = context.getRealPath("/");
        MultipartFile multipartFile = info.file;
        InputStream is = multipartFile.getInputStream();
        performImport(is, current_dir);

        LinkedHashMap<String, Object> hs = new LinkedHashMap<String, Object>();
        hs.put("user", usersDao.getUser(info.userId));
        hs.put("message", "library");
        hs.put("action", "import");
        hs.put("error", "");
        hs.put("fileName", info.filename);

        scopeApplicationAdapter.sendMessageWithClientByPublicSID(hs, info.publicSID);

    } catch (Exception e) {

        log.error("[ImportExport]", e);

        e.printStackTrace();
        throw new ServletException(e);
    }

    return;
}

From source file:fr.univrouen.poste.web.candidat.MyPosteCandidatureController.java

@RequestMapping(value = "/{id}/addMemberReviewFile", method = RequestMethod.POST, produces = "text/html")
@PreAuthorize("hasPermission(#id, 'review')")
public String addMemberReviewFile(@PathVariable("id") Long id, @Valid MemberReviewFile memberReviewFile,
        BindingResult bindingResult, Model uiModel, HttpServletRequest request) throws IOException {
    if (bindingResult.hasErrors()) {
        logger.warn(bindingResult.getAllErrors());
        return "redirect:/postecandidatures/" + id.toString();
    }//from   w  w  w .  j a  v  a 2 s .co m
    uiModel.asMap().clear();

    // get PosteCandidature from id
    PosteCandidature postecandidature = PosteCandidature.findPosteCandidature(id);

    // upload file
    MultipartFile file = memberReviewFile.getFile();
    // sometimes file is null here, but I don't know how to reproduce this issue ... maybe that can occur only with some specifics browsers ?
    if (file != null) {
        String filename = file.getOriginalFilename();
        Long fileSize = file.getSize();

        boolean filenameAlreadyUsed = false;
        for (MemberReviewFile rFile : postecandidature.getMemberReviewFiles()) {
            if (rFile.getFilename().equals(filename)) {
                filenameAlreadyUsed = true;
                break;
            }
        }

        if (filenameAlreadyUsed) {
            uiModel.addAttribute("filename_already_used", filename);
            logger.info("addMemberReviewFile - upload restriction sur '" + filename
                    + "' un fichier de mme nom existe dj pour une candidature de "
                    + postecandidature.getCandidat().getEmailAddress());
        } else {

            if (fileSize != 0) {
                String contentType = file.getContentType();
                // cf https://github.com/EsupPortail/esup-dematec/issues/8 - workaround pour viter mimetype erron comme application/text-plain:formatted
                contentType = contentType.replaceAll(":.*", "");

                InputStream inputStream = file.getInputStream();
                //byte[] bytes = IOUtils.toByteArray(inputStream);

                memberReviewFile.setFilename(filename);
                memberReviewFile.setFileSize(fileSize);
                memberReviewFile.setContentType(contentType);
                logger.info("Upload and set file in DB with filesize = " + fileSize);
                memberReviewFile.getBigFile().setBinaryFileStream(inputStream, fileSize);
                memberReviewFile.getBigFile().persist();

                Calendar cal = Calendar.getInstance();
                Date currentTime = cal.getTime();
                memberReviewFile.setSendTime(currentTime);

                User currentUser = getCurrentUser();
                memberReviewFile.setMember(currentUser);

                postecandidature.getMemberReviewFiles().add(memberReviewFile);

                //postecandidature.setModification(currentTime);

                postecandidature.persist();

                logService.logActionFile(LogService.UPLOAD_REVIEW_ACTION, postecandidature, memberReviewFile,
                        request, currentTime);
            }
        }
    } else {
        String userId = SecurityContextHolder.getContext().getAuthentication().getName();
        String ip = request.getRemoteAddr();
        String userAgent = request.getHeader("User-Agent");
        logger.warn(userId + "[" + ip + "] tried to add a 'null file' ... his userAgent is : " + userAgent);
    }

    return "redirect:/postecandidatures/" + id.toString();
}