Advertisement
Guest User

Untitled

a guest
Feb 22nd, 2017
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.22 KB | None | 0 0
  1. package controller;
  2.  
  3. import java.awt.Image;
  4. import java.awt.image.BufferedImage;
  5. import java.io.File;
  6. import java.io.IOException;
  7. import java.sql.Timestamp;
  8. import java.text.ParseException;
  9. import java.text.SimpleDateFormat;
  10. import java.util.ArrayList;
  11. import java.util.Date;
  12. import java.util.Iterator;
  13. import java.util.List;
  14.  
  15. import javax.imageio.ImageIO;
  16. import javax.servlet.RequestDispatcher;
  17. import javax.servlet.http.HttpServletRequest;
  18. import javax.servlet.http.HttpServletResponse;
  19. import javax.servlet.http.Part;
  20.  
  21. import org.apache.commons.fileupload.FileItem;
  22. import org.apache.commons.fileupload.FileItemFactory;
  23. import org.apache.commons.fileupload.FileUploadException;
  24. import org.apache.commons.fileupload.disk.DiskFileItemFactory;
  25. import org.apache.commons.fileupload.servlet.ServletFileUpload;
  26.  
  27. import model.Message;
  28. import net.coobird.thumbnailator.Thumbnails;
  29. import service.MessageService;
  30.  
  31. public class UploadHandler extends RequestHandler {
  32.     MessageService messageService;
  33.  
  34.     public UploadHandler(MessageService messageService) {
  35.  
  36.         super();
  37.         this.messageService = messageService;
  38.     }
  39.  
  40.     @Override
  41.     public void handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
  42.         boolean isMultipart = ServletFileUpload.isMultipartContent(request);
  43.  
  44.         if (isMultipart) {
  45.             // Create a factory for disk-based file items
  46.             FileItemFactory factory = new DiskFileItemFactory();
  47.  
  48.             // Create a new file upload handler
  49.             ServletFileUpload upload = new ServletFileUpload(factory);
  50.  
  51.             try {
  52.                 // Parse the request
  53.                 List /* FileItem */ items = upload.parseRequest(request);
  54.                 Iterator iterator = items.iterator();
  55.                 String url = request.getServletContext().getRealPath("/") + "images/";
  56.                 FileItem item;
  57.                 Timestamp time;
  58.                 File file = new File(url);
  59.                
  60.                 if (!file.exists()) {
  61.                     file.mkdirs();
  62.                 }
  63.                
  64.                 Part uploadedFile = request.getPart("fileName");
  65.                 String fileName = uploadedFile.getSubmittedFileName();
  66.                 if(fileName == null || fileName.trim().isEmpty()){
  67.                     ArrayList<String> errors = new ArrayList<String>();
  68.                     errors.add("geen bestand mee gegeven");
  69.                     request.setAttribute("errors", errors);
  70.                     //return "upload.jsp";
  71.                     RequestDispatcher view = request.getRequestDispatcher("upload.jsp");
  72.                     view.forward(request, response);
  73.                     return;
  74.                 }
  75.                 System.out.println(url);
  76.                 uploadedFile.write(url + fileName);
  77.                
  78.                
  79.                 File test = new File(url + "thumb/");
  80.                 if(!test.exists()){
  81.                     test.mkdirs();
  82.                 }
  83.                 Thumbnails.of(url + fileName).size(50, 50).toFile(url + "thumb/" + fileName);
  84.                
  85.                
  86.                 String relative = "images/" + fileName;
  87.                 Message message = createMessage(request, response, relative);
  88.                
  89.                 try{
  90.                     this.messageService.add(message);
  91.                 }catch(Exception e){
  92.                     e.printStackTrace();
  93.                     RequestDispatcher view = request.getRequestDispatcher("upload.jsp");
  94.                     view.forward(request, response);
  95.                     return;             }
  96.  
  97.             } catch (FileUploadException e) {
  98.                 e.printStackTrace();
  99.             } catch (Exception e) {
  100.                 e.printStackTrace();
  101.             }
  102.         }
  103.         response.sendRedirect("Controller?action=index");
  104. //      RequestHandler handler = new IndexHandler(messageService);
  105. //      handler.handleRequest(request, response);
  106.     }
  107.  
  108.     private Message createMessage(HttpServletRequest request, HttpServletResponse response, String relative)
  109.             throws ParseException {
  110.  
  111.         Message message = new Message();
  112.         String naam = request.getParameter("naam");
  113.         String content = request.getParameter("content");
  114.         String eindDatum = request.getParameter("eindDatum");
  115.         System.out.println(eindDatum);
  116.         String eindTijd = request.getParameter("eindTijd");
  117.        
  118.         String startDatum = request.getParameter("startDatum");
  119.         System.out.println(startDatum);
  120.         String startTijd = request.getParameter("startTijd");
  121.         SimpleDateFormat startFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
  122.        
  123.         ArrayList<String> errors = new ArrayList<String>();
  124.         Date parsedStartDate = null;
  125.         Date parsedEndDate = null;
  126.        
  127.         try{
  128.             parsedStartDate = startFormat.parse(startDatum + " " + startTijd + ":00");
  129.             message.setStartTijd(new Timestamp(parsedStartDate.getTime()));
  130.             request.setAttribute("oudeStartDatum", startDatum);
  131.             request.setAttribute("oudeStartTijd", startTijd);
  132.         }catch(Exception e){
  133.             errors.add(e.getMessage());
  134.         }
  135.         try{
  136.             parsedEndDate = startFormat.parse(eindDatum + " " + eindTijd + ":00");
  137.             message.setEindTijd(new Timestamp(parsedEndDate.getTime()));
  138.             request.setAttribute("oudeEindDatum", eindDatum);
  139.             request.setAttribute("oudeEindTijd", eindTijd);
  140.         }catch(Exception e){
  141.             errors.add(e.getMessage());
  142.         }
  143.         try{
  144.             message.setContent(content);
  145.             request.setAttribute("oudeContent", content);
  146.         }catch(Exception e){
  147.             errors.add(e.getMessage());
  148.         }
  149.         try{
  150.             message.setNaam(naam);
  151.             request.setAttribute("oudeNaam", naam);
  152.         }catch(Exception e){
  153.             errors.add(e.getMessage());
  154.         }
  155.         try{
  156.             message.setImage(relative);
  157.            
  158.         }catch(Exception e){
  159.             errors.add(e.getMessage());
  160.         }
  161.        
  162.         if(errors.isEmpty()){
  163.             return message;
  164.         }else{
  165.             System.out.println("leeg");
  166.             message = null;
  167.             request.setAttribute("errors", errors);
  168.             return message;
  169.         }
  170.     }
  171. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement