Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package controller;
- import java.awt.Image;
- import java.awt.image.BufferedImage;
- import java.io.File;
- import java.io.IOException;
- import java.sql.Timestamp;
- import java.text.ParseException;
- import java.text.SimpleDateFormat;
- import java.util.ArrayList;
- import java.util.Date;
- import java.util.Iterator;
- import java.util.List;
- import javax.imageio.ImageIO;
- import javax.servlet.RequestDispatcher;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import javax.servlet.http.Part;
- import org.apache.commons.fileupload.FileItem;
- import org.apache.commons.fileupload.FileItemFactory;
- import org.apache.commons.fileupload.FileUploadException;
- import org.apache.commons.fileupload.disk.DiskFileItemFactory;
- import org.apache.commons.fileupload.servlet.ServletFileUpload;
- import model.Message;
- import net.coobird.thumbnailator.Thumbnails;
- import service.MessageService;
- public class UploadHandler extends RequestHandler {
- MessageService messageService;
- public UploadHandler(MessageService messageService) {
- super();
- this.messageService = messageService;
- }
- @Override
- public void handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
- boolean isMultipart = ServletFileUpload.isMultipartContent(request);
- if (isMultipart) {
- // Create a factory for disk-based file items
- FileItemFactory factory = new DiskFileItemFactory();
- // Create a new file upload handler
- ServletFileUpload upload = new ServletFileUpload(factory);
- try {
- // Parse the request
- List /* FileItem */ items = upload.parseRequest(request);
- Iterator iterator = items.iterator();
- String url = request.getServletContext().getRealPath("/") + "images/";
- FileItem item;
- Timestamp time;
- File file = new File(url);
- if (!file.exists()) {
- file.mkdirs();
- }
- Part uploadedFile = request.getPart("fileName");
- String fileName = uploadedFile.getSubmittedFileName();
- if(fileName == null || fileName.trim().isEmpty()){
- ArrayList<String> errors = new ArrayList<String>();
- errors.add("geen bestand mee gegeven");
- request.setAttribute("errors", errors);
- //return "upload.jsp";
- RequestDispatcher view = request.getRequestDispatcher("upload.jsp");
- view.forward(request, response);
- return;
- }
- System.out.println(url);
- uploadedFile.write(url + fileName);
- File test = new File(url + "thumb/");
- if(!test.exists()){
- test.mkdirs();
- }
- Thumbnails.of(url + fileName).size(50, 50).toFile(url + "thumb/" + fileName);
- String relative = "images/" + fileName;
- Message message = createMessage(request, response, relative);
- try{
- this.messageService.add(message);
- }catch(Exception e){
- e.printStackTrace();
- RequestDispatcher view = request.getRequestDispatcher("upload.jsp");
- view.forward(request, response);
- return; }
- } catch (FileUploadException e) {
- e.printStackTrace();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- response.sendRedirect("Controller?action=index");
- // RequestHandler handler = new IndexHandler(messageService);
- // handler.handleRequest(request, response);
- }
- private Message createMessage(HttpServletRequest request, HttpServletResponse response, String relative)
- throws ParseException {
- Message message = new Message();
- String naam = request.getParameter("naam");
- String content = request.getParameter("content");
- String eindDatum = request.getParameter("eindDatum");
- System.out.println(eindDatum);
- String eindTijd = request.getParameter("eindTijd");
- String startDatum = request.getParameter("startDatum");
- System.out.println(startDatum);
- String startTijd = request.getParameter("startTijd");
- SimpleDateFormat startFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
- ArrayList<String> errors = new ArrayList<String>();
- Date parsedStartDate = null;
- Date parsedEndDate = null;
- try{
- parsedStartDate = startFormat.parse(startDatum + " " + startTijd + ":00");
- message.setStartTijd(new Timestamp(parsedStartDate.getTime()));
- request.setAttribute("oudeStartDatum", startDatum);
- request.setAttribute("oudeStartTijd", startTijd);
- }catch(Exception e){
- errors.add(e.getMessage());
- }
- try{
- parsedEndDate = startFormat.parse(eindDatum + " " + eindTijd + ":00");
- message.setEindTijd(new Timestamp(parsedEndDate.getTime()));
- request.setAttribute("oudeEindDatum", eindDatum);
- request.setAttribute("oudeEindTijd", eindTijd);
- }catch(Exception e){
- errors.add(e.getMessage());
- }
- try{
- message.setContent(content);
- request.setAttribute("oudeContent", content);
- }catch(Exception e){
- errors.add(e.getMessage());
- }
- try{
- message.setNaam(naam);
- request.setAttribute("oudeNaam", naam);
- }catch(Exception e){
- errors.add(e.getMessage());
- }
- try{
- message.setImage(relative);
- }catch(Exception e){
- errors.add(e.getMessage());
- }
- if(errors.isEmpty()){
- return message;
- }else{
- System.out.println("leeg");
- message = null;
- request.setAttribute("errors", errors);
- return message;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement