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

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

Introduction

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

Prototype

byte[] getBytes() throws IOException;

Source Link

Document

Return the contents of the file as an array of bytes.

Usage

From source file:vn.webapp.controller.cp.RegularTimetableController.java

/**
 * Save a paper//from   w w w  . j  a  v a2 s  . c  o  m
 * @param paperValid
 * @param result
 * @param model
 * @param session
 * @return String
 */
@RequestMapping(value = "saveRegularTimetable", method = RequestMethod.POST)
public String saveRegularTimetable(HttpServletRequest request,
        @Valid @ModelAttribute("regularTimetableFormAdd") RegularTimetableValidation regularTimetableValidation,
        BindingResult result, Map model, HttpSession session) {
    List<AcademicYear> academicYearList = academicYearService.list();
    model.put("academicYearList", academicYearList);

    if (result.hasErrors()) {
        return "cp.addRegularTimetable";
    } else {
        /**
         * Uploading file
         */
        MultipartFile sourceUploadFile = regularTimetableValidation.getRegularTimetableFileUpload();
        String fileName = sourceUploadFile.getOriginalFilename();
        String sourceUploadFileSrc = "";
        try {
            //Creating Date in java with today's date.
            Date currentDate = new Date();
            //change date into string yyyyMMdd format example "20110914"
            SimpleDateFormat dateformatyyyyMMdd = new SimpleDateFormat("HHmmssddMMyyyy");
            String sCurrentDate = dateformatyyyyMMdd.format(currentDate);

            byte[] bytes = sourceUploadFile.getBytes();
            String path = request.getServletContext().getRealPath("uploads");
            File dir = new File(path + "/regularTimetables");
            if (!dir.exists()) {
                dir.mkdirs();
            }

            // Create a file
            String currentUserName = session.getAttribute("currentUserName").toString();
            fileName = currentUserName + "_" + sCurrentDate + "_" + fileName;
            File serverFile = new File(dir.getAbsolutePath() + File.separator + fileName);
            if (serverFile.exists()) {
                sourceUploadFileSrc = dir.getAbsolutePath() + File.separator + fileName;
            }
            // Save data into file
            BufferedOutputStream stream = new BufferedOutputStream(new FileOutputStream(serverFile));
            stream.write(bytes);
            stream.close();
            List<RegularCourseTimetableStatus> RCTTS_List = regularCourseTimetableStatusService.loadRCTTSList();
            boolean isToAdd = true;
            for (RegularCourseTimetableStatus RCTTS : RCTTS_List) {
                if ((RCTTS.getRCTTS_AcaYear_Code().equals(regularTimetableValidation.getAcademicYear()))
                        && (RCTTS.getRCTTS_Semester() == regularTimetableValidation.getSemester())) {
                    isToAdd = false;
                    break;
                }
            }
            if (isToAdd)
                regularCourseTimetableStatusService.save(regularTimetableValidation.getAcademicYear(),
                        regularTimetableValidation.getSemester(), 1);
            ArrayList<ClassRoom> classRooms = ReadTimeTableExcel
                    .readFileExcel(dir.getAbsolutePath() + File.separator + fileName);

            int err = 0;
            int rc = 0;
            int rctte = 0;
            ArrayList<String> error1 = new ArrayList<String>();
            ArrayList<String> error2 = new ArrayList<String>();
            ArrayList<String> error3 = new ArrayList<String>();
            ArrayList<String> error4 = new ArrayList<String>();
            int cnt = 0;
            String StatusMessages = "";

            try (DataOutputStream out = new DataOutputStream(
                    new FileOutputStream("regularTimeTableUploadStatus.bin", false))) {
                out.writeInt(classRooms.size());

                for (ClassRoom classroom : classRooms) {
                    cnt++;
                    out.writeInt(cnt);
                    System.out.println(cnt + ":" + classroom.getClassCode());
                    try {
                        String roomCode = classroom.getRoom();
                        String note = "";
                        String roomBuilding = "";
                        int clusterID = 5;
                        int cap = -1;
                        int floor = 0;
                        Rooms room = roomsService.loadByCode(roomCode);
                        if (room == null) {
                            String[] tokens = roomCode.split("-");
                            for (int i = 1; i < tokens.length - 1; i++)
                                tokens[0] += "-" + tokens[i];
                            switch (tokens[0]) {
                            case "D3":
                            case "D5":
                            case "D3-5":
                            case "D3,5":
                            case "D7":
                            case "D9":
                                clusterID = 1;
                                break;
                            case "D4":
                            case "D6":
                                clusterID = 2;
                                break;
                            case "TC":
                                clusterID = 3;
                                break;
                            case "T":
                                clusterID = 4;
                                break;
                            default:
                                clusterID = 5;
                                break;
                            }
                            roomBuilding = tokens[0];
                            try {
                                floor = Integer.parseInt(tokens[tokens.length - 1].substring(0, 1));
                            } catch (NumberFormatException e) {
                                floor = -1;
                            }
                            if (roomsService.save(roomCode, roomBuilding, cap, note, floor,
                                    roomClusterService.loadByCode(clusterID)) != 0) {
                                room = roomsService.loadByCode(roomCode);
                                StatusMessages += "<b>Cp nht thm phng: </b>" + room.getR_Code()
                                        + "<br/>";
                            } else {
                                err++;
                                error4.add(classroom.getClassCode() + ": cannot find or add "
                                        + classroom.getRoom());
                            }
                        }
                        /*      List<RegularCourseTimetableInterface> RCTTI_List = regularCourseTimetableInterfaceService.loadRCTTIList(regularTimetableValidation.getAcademicYear(),regularTimetableValidation.getSemester());
                        HashSet<String> classCodeSet=new HashSet<String>();
                        for(RegularCourseTimetableInterface rCTTI:RCTTI_List){
                         classCodeSet.add(rCTTI.getClasscode());
                        }
                         */
                        if (room != null) {
                            String tempRCTTECode = regularTimetableValidation.getAcademicYear() + "-"
                                    + regularTimetableValidation.getSemester() + "-" + classroom.getClassCode();
                            RegularCourse RC = regularCourseService.loadByCode(classroom.getCourseCode());
                            if (RC == null) {
                                rc++;
                                if (regularCourseService.save(classroom.getCourseCode(),
                                        classroom.getCourseName(), classroom.getSlotNum(),
                                        classroom.getFacultyCode()) == 0) {
                                    err++;
                                    error1.add(classroom.getCourseCode());
                                }
                                RC = regularCourseService.loadByCode(classroom.getCourseCode());
                            }

                            /*if(!classCodeSet.contains(classroom.getClassCode())){
                            if(regularCourseTimetableEntryService.save(regularTimetableValidation.getSemester(), classroom.getClassCode(), RC, tempRCTTECode, regularTimetableValidation.getAcademicYear(),classroom.getClassType(),classroom.getSemesterType(),"",classroom.getClassInfo(),classroom.getCourseInfo(),classroom.getClassStatus())==0){
                               err++;
                               error2.add(classroom.getClassCode());
                            }
                            } */
                            RegularCourseTimetableEntry rCTTE = regularCourseTimetableEntryService
                                    .loadRCTTEByCode(tempRCTTECode);

                            if (rCTTE == null) {
                                rctte++;
                                if (regularCourseTimetableEntryService.save(
                                        regularTimetableValidation.getSemester(), classroom.getClassCode(), RC,
                                        tempRCTTECode, regularTimetableValidation.getAcademicYear(),
                                        classroom.getClassType(), classroom.getSemesterType(), "",
                                        classroom.getClassInfo(), classroom.getCourseInfo(),
                                        classroom.getClassStatus()) == 0) {
                                    err++;
                                    error2.add(classroom.getClassCode());
                                } else {
                                    rCTTE = regularCourseTimetableEntryService.loadRCTTEByCode(tempRCTTECode);
                                }
                            }

                            int day = 0;
                            try {
                                day = Integer.parseInt(classroom.getDay());
                            } catch (NumberFormatException e) {
                                day = 0;
                            }
                            //System.out.println(classroom.getCourseCode() + " "+ classroom.getSlotNum());
                            RegularCourseTimetable rCTT = regularCourseTimetableService
                                    .loadByCode(rCTTE.getRCTTE_Code() + "-" + day);
                            if (rCTT == null) {
                                if (regularCourseTimetableService.save(day, classroom.getSlots(),
                                        classroom.getWeeks(), room.getR_Code(), rCTTE) == 0) {
                                    err++;
                                    error3.add(classroom.getCourseCode() + " " + classroom.getClassCode() + " "
                                            + classroom.getDay());
                                } else {
                                    //rCTT=regularCourseTimetableService.loadByCode(rCTTE.getRCTTE_Code()+"-"+day);
                                    //StatusMessages="Lp "+cnt+"/"+classRooms.size()+"<br/><b>Thm mi lp "+rCTTE.getRCTTE_Class_Code()+": </b><br/>"+"Tit "+classroom.getSlots()+" Th "+rCTT.getRCTT_Day()+" Tun "+classroom.getDay()+ " Phng "+classroom.getRoom()+"<br/>";
                                    //System.out.println("Thm mi lp "+rCTTE.getRCTTE_Class_Code());
                                    //model.put("status", StatusMessages);
                                }
                            } else {
                                if (!((rCTT.getRCTT_Day() == day)
                                        && (rCTT.getRCTT_Slots().equals(classroom.getSlots()))
                                        && (rCTT.getRCTT_Weeks().equals(classroom.getWeeks()))
                                        && (rCTT.getRCTT_Room_Code().equals(classroom.getRoom())))) {
                                    regularCourseTimetableService.edit(rCTT.getRCTT_ID(), day,
                                            classroom.getSlots(), classroom.getWeeks(), room.getR_Code(),
                                            rCTTE);
                                    //StatusMessages="Lp "+cnt+"/"+classRooms.size()+"<br/><b>Cp nht li lp "+rCTTE.getRCTTE_Class_Code()+": </b><br/>"+"Tit "+rCTT.getRCTT_Slots()+" Th "+rCTT.getRCTT_Day()+" Tun "+rCTT.getRCTT_Weeks()+ " Phng "+rCTT.getRCTT_Room_Code()+"<br/>";
                                    //rCTT=regularCourseTimetableService.loadByCode(rCTTE.getRCTTE_Code()+"-"+day);
                                    //StatusMessages+="===> Tit "+rCTT.getRCTT_Slots()+" Th "+rCTT.getRCTT_Day()+" Tun "+rCTT.getRCTT_Weeks()+ " Phng "+rCTT.getRCTT_Room_Code()+"<br/>";
                                    //System.out.println("Cp nht li lp "+rCTTE.getRCTTE_Class_Code());
                                    //model.put("status", StatusMessages);
                                }
                            }
                        }
                    } catch (Exception e) {
                        e.printStackTrace();
                        System.out.println("M lp: " + classroom.getClassCode()
                                + " li khng nhp c d liu!");
                    }
                }
            } catch (FileNotFoundException e) {
                System.out.println(e.getMessage());
            } catch (IOException e) {
                System.out.println(e.getMessage());
            } finally {
                try (DataOutputStream out = new DataOutputStream(
                        new FileOutputStream("regularTimeTableUploadStatus.bin", false))) {
                } catch (Exception e) {

                }
            }
            model.put("status", StatusMessages);
            return "redirect:" + this.baseUrl + "/cp/RegularTimetables.html";
        } catch (Exception e) {
            e.printStackTrace();
            model.put("status", "You failed to upload " + fileName + " => " + e.getMessage());
        }

        return "cp.addRegularTimetable";
    }
}

From source file:vn.webapp.controller.cp.RoomsController.java

/**
 * Save a room//from ww  w. j  a  v  a 2  s  .c o  m
         
 */
@RequestMapping(value = "saveRoom", method = RequestMethod.POST)
public String saveRoom(HttpServletRequest request,
        @Valid @ModelAttribute("roomAdd") RoomValidation roomValidation, BindingResult result, Map model,
        HttpSession session) {
    /*
     * Get list of paper category and journalList
     */

    /*
     * Put data back to view
     */
    if (result.hasErrors()) {
        return "cp.addRoom";
    } else {
        /*
         * Prepare data for inserting DB
         */

        /**
         * Uploading file
         */
        MultipartFile sourceUploadFile = roomValidation.getRoomsUpload();
        String fileName = sourceUploadFile.getOriginalFilename();
        String sourceUploadFileSrc = "";
        try {
            //Creating Date in java with today's date.
            Date currentDate = new Date();
            //change date into string yyyyMMdd format example "20110914"
            SimpleDateFormat dateformatyyyyMMdd = new SimpleDateFormat("HHmmssddMMyyyy");
            String sCurrentDate = dateformatyyyyMMdd.format(currentDate);

            byte[] bytes = sourceUploadFile.getBytes();
            String path = request.getServletContext().getRealPath("uploads");
            File dir = new File(path + "/rooms");
            if (!dir.exists()) {
                dir.mkdirs();
            }

            // Create a file
            String currentUserName = session.getAttribute("currentUserName").toString();
            fileName = currentUserName + "_" + sCurrentDate + "_" + fileName;
            File serverFile = new File(dir.getAbsolutePath() + File.separator + fileName);
            if (serverFile.exists()) {
                sourceUploadFileSrc = dir.getAbsolutePath() + File.separator + fileName;
            }
            // Save data into file
            BufferedOutputStream stream = new BufferedOutputStream(new FileOutputStream(serverFile));
            stream.write(bytes);
            stream.close();

            HustRoomData roomData = new HustRoomData();
            List<RoomInfo> roominfos = roomData
                    .readFileExcel(dir.getAbsolutePath() + File.separator + fileName);
            for (RoomInfo ri : roominfos) {
                RoomCluster roomCluster = roomClusterService.loadByCode(ri.getClusterID());
                Rooms r = roomsService.loadByCode(ri.getRoomCode());
                if (r == null)
                    roomsService.save(ri.getRoomCode(), ri.getBuilding(), ri.getCapacity(), ri.getNote(),
                            ri.getFloor(), roomCluster);
                else
                    roomsService.edit(r.getR_ID(), ri.getRoomCode(), ri.getBuilding(), ri.getCapacity(),
                            ri.getNote(), ri.getFloor(), roomCluster);
            }

            /**
             * Preparing data for adding into DB
             */

            //if(i_InsertAPaper > 0){
            //model.put("status", "Successfully saved a paper: ");
            return "redirect:" + this.baseUrl + "/cp/Rooms.html";
            //}
        } catch (Exception e) {
            model.put("status", "You failed to upload " + fileName + " => " + e.getMessage());
        }
        return "cp.rooms";
    }
}

From source file:war.controller.WorkboardController.java

@RequestMapping(value = "/upload", method = RequestMethod.POST)
public String uploadfileinWorkboard(@RequestParam(value = "file", required = true) MultipartFile uploadfile,
        @RequestParam(value = "id", required = true) Integer userStoryId, RedirectAttributes attributes) {
    logger.info("Inside uploadfileinWorkBoard");

    UserStory userStory = null;/*  ww  w  .jav a  2  s.  c om*/
    try {
        userStory = userStoryDao.find(userStoryId);

        if (!(SecurityHelper.IsCurrentUserAllowedToAccess(userStory))) // Security: ownership check
            throw new AccessDeniedException(ERR_ACCESS_DENIED);

        int lastIndex = uploadfile.getOriginalFilename().lastIndexOf('.');
        String fileName = uploadfile.getOriginalFilename().substring(0, lastIndex);
        String fileExtension = uploadfile.getOriginalFilename().substring(lastIndex + 1);

        String contentType = uploadfile.getContentType();
        String[] arrPlainTextFiletypes = { "text/plain", "application/txt", "browser/internal", "text/anytext",
                "widetext/plain", "widetext/paragraph" };
        String[] arrJpegFiletypes = { "image/jpeg", "image/jpg", "image/jp_", "application/jpg",
                "application/x-jpg", "image/pjpeg", "image/pipeg", "image/vnd.swiftview-jpeg",
                "image/x-xbitmap" };
        String[] arrCsvFiletypes = { "text/comma-separated-values", "text/csv", "application/csv",
                "application/excel", "application/vnd.ms-excel", "application/vnd.msexcel" };
        if (ArrayUtils.contains(arrPlainTextFiletypes, contentType)
                || ArrayUtils.contains(arrJpegFiletypes, contentType)
                || ArrayUtils.contains(arrCsvFiletypes, contentType)) {

            DisplayType displayType = DisplayType.PLAIN;
            if (ArrayUtils.contains(arrJpegFiletypes, contentType)) // File is a JPEG
                displayType = DisplayType.PICTURE;
            else if (ArrayUtils.contains(arrCsvFiletypes, contentType)) // File is a CSV
                displayType = DisplayType.TABLE;
            DataElementFile dataElement = new DataElementFile(new Date(), fileName, true, 0, displayType,
                    userStory, fileExtension, uploadfile.getBytes());
            dataElementDao.save(dataElement);
            userStory.getDataElements().add(dataElement);

            attributes.addFlashAttribute("successMessage", MSG_FILE_UPLOAD_SUCCESS);
        } else
            attributes.addFlashAttribute("errorMessage", ERR_INVALID_FILETYPE);
    } catch (IOException e) {
        attributes.addFlashAttribute("errorMessage", ERR_FILE_UPLOAD);
    }

    return "redirect:/auth/workboard?user=" + SecurityHelper.getCurrentlyLoggedInUsername()
            + "#tabs-non-climate-context";
}

From source file:war.controller.WorkboardController.java

@RequestMapping(value = "/addEngineeringData", method = RequestMethod.POST)
public String addEngineeringDataToWorkboard(
        @RequestParam(value = "file", required = true) MultipartFile uploadfile,
        @RequestParam(value = "sourceType", required = true) String sourceType,
        @RequestParam(value = "engVariable", required = true) String engVariableName,
        @RequestParam(value = "engVariableCategory", required = true) String engVariableCategory,
        @RequestParam(value = "id", required = true) Integer userStoryId,
        @RequestParam(value = "displayType", required = true) String displayTypeString,
        RedirectAttributes attributes) {
    logger.info("Inside addEngineeringDataToWorkBoard");

    UserStory userStory = null;//from   w w w  .j  av  a2s  . c o  m
    try {
        userStory = userStoryDao.find(userStoryId);

        if (!(SecurityHelper.IsCurrentUserAllowedToAccess(userStory))) // Security: ownership check
            throw new AccessDeniedException(ERR_ACCESS_DENIED);

        EngineeringModelVariable engVariable = null;
        try {
            engVariable = engineeringModelVariableDao.find(engVariableName, engVariableCategory);
        } catch (NoResultException e) {
            logger.info(e.getMessage() + "(" + engVariableName + ")");
            throw (e);
        }

        DataElement.DisplayType displayType = DataElement.DisplayType.fromString(displayTypeString);

        if (sourceType.equals("upload")) {
            logger.info("Excel File Upload");

            int lastIndex = uploadfile.getOriginalFilename().lastIndexOf('.');
            //String fileName = uploadfile.getOriginalFilename().substring(0, lastIndex);
            String fileExtension = uploadfile.getOriginalFilename().substring(lastIndex + 1);
            String fileType = uploadfile.getContentType();

            // Checks the file extension & MIME type
            if (uploadfile.getSize() == 0) {
                throw new IllegalArgumentException(WorkboardController.ERR_UPLOAD_NO_FILE);
            } else if (!(fileType.equals("application/vnd.ms-excel")
                    || fileType.equals("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"))
                    || !(fileExtension.equals("xls") || fileExtension.equals("xlsx"))) {
                throw new InvalidFormatException(WorkboardController.ERR_INVALID_FILE_FORMAT);
            }

            ByteArrayInputStream bis = new ByteArrayInputStream(uploadfile.getBytes());
            // HSSFWorkbook and HSSFSheet for XLS, XSSFWorkbook and XSSFSheet for XLSX
            HSSFWorkbook workbook = new HSSFWorkbook(bis);

            // Extract & save Engineering Model Asset
            EngineeringModelAsset asset = extractEngineeringOutputAsset(workbook);
            asset = engineeringModelAssetDao.save(asset);

            // Extract and save Engineering Model Data
            List<EngineeringModelData> extractedDataList = extractEngineeringOutputData(workbook, userStory,
                    engVariable, asset);

            // Create a data element using the extracted data if there is some
            if (extractedDataList != null && extractedDataList.size() > 0) {

                for (EngineeringModelData data : extractedDataList) {
                    engineeringModelDataDao.save(data);
                }

                DataElementEngineeringModel de = new DataElementEngineeringModel(new Date(),
                        "Concrete deterioration for " + asset.getAssetCode(), true, 0, displayType, userStory,
                        extractedDataList);
                dataElementDao.save(de);

                userStory = userStoryDao.find(userStoryId);
                attributes.addFlashAttribute("successMessage", WorkboardController.MSG_ENG_DATA_ADDED);
            } else {
                throw new NoResultException(WorkboardController.ERR_NO_DATA_ENG_MODEL);
            }
        } else if (sourceType.equals("example")) {
            logger.info("Example selected");

            //Find the Data
            List<EngineeringModelData> engineeringModelDataList = engineeringModelDataDao
                    .find(userStory.getSeaport().getRegion(), engVariable);

            // Create the data element
            if (engineeringModelDataList != null && engineeringModelDataList.size() > 0) {
                String dataElementTitle = "Concrete deterioration for "
                        + engineeringModelDataList.get(0).getAsset().getAssetCode();
                DataElementEngineeringModel de = new DataElementEngineeringModel(new Date(), dataElementTitle,
                        true, 0, displayType, userStory, engineeringModelDataList);
                dataElementDao.save(de);

                userStory = userStoryDao.find(userStoryId);
                attributes.addFlashAttribute("successMessage", WorkboardController.MSG_ENG_DATA_ADDED);
            } else {
                throw new NoResultException(WorkboardController.ERR_NO_DATA_ENG_MODEL_EXAMPLE);
            }
        }
    } catch (NoResultException e) {
        attributes.addFlashAttribute("warningMessage", e.getMessage());
    } catch (InvalidFormatException e) {
        attributes.addFlashAttribute("warningMessage", e.getMessage());
    } catch (IllegalArgumentException e) {
        attributes.addFlashAttribute("warningMessage", e.getMessage());
    } catch (IOException e) {
        attributes.addFlashAttribute("errorMessage", e.getMessage());
    }

    return "redirect:/auth/workboard?user=" + SecurityHelper.getCurrentlyLoggedInUsername()
            + "#tabs-applications";
}