| 101 | | HttpSession httpSession = request.getSession(); |
|---|
| 102 | | |
|---|
| 103 | | // Check that we have a file upload request |
|---|
| 104 | | boolean isMultipart = ServletFileUpload.isMultipartContent(request); |
|---|
| 105 | | |
|---|
| 106 | | if (isMultipart) { |
|---|
| 107 | | // Create a new file upload handler |
|---|
| 108 | | ServletFileUpload upload = new ServletFileUpload(); |
|---|
| 109 | | |
|---|
| 110 | | // Create a factory for disk-based file items |
|---|
| 111 | | DiskFileItemFactory factory = new DiskFileItemFactory(); |
|---|
| 112 | | |
|---|
| 113 | | // Set factory constraints |
|---|
| 114 | | // factory.setSizeThreshold(maxMemorySize); |
|---|
| 115 | | // factory.setRepository(tempDirectory); |
|---|
| 116 | | |
|---|
| 117 | | // Create a new file upload handler |
|---|
| 118 | | // ServletFileUpload upload = new ServletFileUpload(factory); |
|---|
| 119 | | |
|---|
| 120 | | // Set overall request size constraint |
|---|
| 121 | | // upload.setSizeMax(maxRequestSize); |
|---|
| 122 | | |
|---|
| 123 | | // Parse the request |
|---|
| 124 | | List items = upload.parseRequest(request); |
|---|
| | 96 | if (Context.isAuthenticated()) { |
|---|
| | 97 | Form form = null; |
|---|
| 126 | | // Process the uploaded items |
|---|
| 127 | | Iterator iter = items.iterator(); |
|---|
| 128 | | while (iter.hasNext()) { |
|---|
| 129 | | FileItem item = (FileItem) iter.next(); |
|---|
| 130 | | |
|---|
| 131 | | if (!item.isFormField()) { |
|---|
| 132 | | String fieldName = item.getFieldName(); |
|---|
| 133 | | String fileName = item.getName(); |
|---|
| 134 | | String contentType = item.getContentType(); |
|---|
| 135 | | boolean isInMemory = item.isInMemory(); |
|---|
| 136 | | long sizeInBytes = item.getSize(); |
|---|
| 137 | | |
|---|
| 138 | | InputStream uploadedStream = item.getInputStream(); |
|---|
| 139 | | Image image = ImageIO.read(uploadedStream); |
|---|
| 140 | | uploadedStream.close(); |
|---|
| 141 | | |
|---|
| 142 | | httpSession.setAttribute(WebConstants.OPENMRS_MSG_ATTR, fileName); |
|---|
| 143 | | |
|---|
| 144 | | return new ModelAndView(new RedirectView(getSuccessView())); |
|---|
| 145 | | } |
|---|
| | 99 | // handle image upload |
|---|
| | 100 | if (request instanceof MultipartHttpServletRequest) { |
|---|
| | 101 | MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest)request; |
|---|
| | 102 | MultipartFile uploadedFile = multipartRequest.getFile("imageFile"); |
|---|
| | 103 | if (uploadedFile != null && !uploadedFile.isEmpty()) { |
|---|
| | 104 | |
|---|
| | 105 | String fileType = uploadedFile.getContentType(); |
|---|
| | 106 | // Make sure that the uploaded file is an image. |
|---|
| | 107 | if(fileType.equals("image/png") || fileType.equals("image/gif") || |
|---|
| | 108 | fileType.equals("image/jpeg")) { |
|---|
| | 109 | String fileName = uploadedFile.getOriginalFilename(); |
|---|
| | 110 | byte[] byteImage = uploadedFile.getBytes(); |
|---|
| | 111 | |
|---|
| | 112 | //TODO: Check the size of the file |
|---|
| | 113 | long size = uploadedFile.getSize(); |
|---|
| | 114 | |
|---|
| | 115 | // Read the image |
|---|
| | 116 | InputStream streamImage = multipartRequest.getInputStream(); |
|---|
| | 117 | BufferedImage bufferedImage = ImageIO.read(streamImage); |
|---|
| | 118 | |
|---|
| | 119 | // String msg = getMessageSourceAccessor().getMessage("Info", |
|---|
| | 120 | // "Name: "+fileName+", Size: "+size+", Type: "+fileType); |
|---|
| | 121 | // httpSession.setAttribute(WebConstants.OPENMRS_MSG_ATTR, msg); |
|---|
| | 122 | |
|---|
| | 123 | // ConceptComplex concept = Context.getConceptService().getConceptComplex(); |
|---|
| | 124 | |
|---|
| | 125 | // Create an obs object and add required fields |
|---|
| | 126 | Obs obsImage = new Obs(Integer.valueOf(111)); |
|---|
| | 127 | obsImage.setDateCreated(new Date()); |
|---|
| | 128 | obsImage.setObsDatetime(new Date()); |
|---|
| | 129 | |
|---|
| | 130 | // Create a ComplexData to store the object |
|---|
| | 131 | ComplexData dataImage = new ComplexData(fileName, bufferedImage); |
|---|
| | 132 | // obsImage.setComplexData(dataImage); |
|---|
| | 133 | |
|---|
| | 134 | //TODO: Need to persist the ComplexData using ComplexObsHandler |
|---|
| | 135 | |
|---|
| | 136 | // Save the obs object |
|---|
| | 137 | Context.getObsService().createObs(obsImage); |
|---|
| | 138 | |
|---|
| | 139 | String msg = getMessageSourceAccessor().getMessage("Info", "ID="+dataImage.getTitle()); |
|---|
| | 140 | httpSession.setAttribute(WebConstants.OPENMRS_MSG_ATTR, msg); |
|---|
| | 141 | |
|---|
| | 142 | |
|---|
| | 143 | return new ModelAndView(new RedirectView(getSuccessView())); |
|---|
| | 144 | } |
|---|
| | 145 | } |
|---|