Advertisement
Guest User

Untitled

a guest
May 27th, 2018
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.71 KB | None | 0 0
  1. package com.mentor.markups.server.servlet.service;
  2.  
  3. import java.io.File;
  4. import java.io.IOException;
  5. import java.io.PrintWriter;
  6. import java.util.List;
  7.  
  8. import javax.servlet.ServletException;
  9. import javax.servlet.http.HttpServlet;
  10. import javax.servlet.http.HttpServletRequest;
  11. import javax.servlet.http.HttpServletResponse;
  12.  
  13. import org.apache.commons.fileupload.FileItem;
  14. import org.apache.commons.fileupload.disk.DiskFileItemFactory;
  15. import org.apache.commons.fileupload.servlet.ServletFileUpload;
  16.  
  17. public class SendServiceImpl extends HttpServlet{
  18.  
  19. // location to store file uploaded
  20. private static final String UPLOAD_DIRECTORY = "upload";
  21.  
  22. // upload settings
  23. private static final int MEMORY_THRESHOLD = 1024 * 1024 * 3; // 3MB
  24. private static final int MAX_FILE_SIZE = 1024 * 1024 * 40; // 40MB
  25. private static final int MAX_REQUEST_SIZE = 1024 * 1024 * 50; // 50MB
  26.  
  27. @Override
  28. protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  29. if (!ServletFileUpload.isMultipartContent(request)) {
  30. // if not, we stop here
  31. PrintWriter writer = response.getWriter();
  32. writer.println("Error: Form must has enctype=multipart/form-data.");
  33. writer.flush();
  34. return;
  35. }
  36. // configures upload settings
  37. DiskFileItemFactory factory = new DiskFileItemFactory();
  38. // sets memory threshold - beyond which files are stored in disk
  39. factory.setSizeThreshold(MEMORY_THRESHOLD);
  40. // sets temporary location to store files
  41. factory.setRepository(new File(System.getProperty("java.io.tmpdir")));
  42.  
  43. ServletFileUpload upload = new ServletFileUpload(factory);
  44.  
  45. // sets maximum size of upload file
  46. upload.setFileSizeMax(MAX_FILE_SIZE);
  47.  
  48. // sets maximum size of request (include file + form data)
  49. upload.setSizeMax(MAX_REQUEST_SIZE);
  50.  
  51. // constructs the directory path to store upload file
  52. // this path is relative to application's directory
  53. String uploadPath = getServletContext().getRealPath("")
  54. + File.separator + UPLOAD_DIRECTORY;
  55.  
  56. // creates the directory if it does not exist
  57. File uploadDir = new File(uploadPath);
  58. if (!uploadDir.exists()) {
  59. uploadDir.mkdir();
  60. }
  61.  
  62. try {
  63. // parses the request's content to extract file data
  64. @SuppressWarnings("unchecked")
  65. List<FileItem> formItems = upload.parseRequest(request);
  66.  
  67. if (formItems != null && formItems.size() > 0) {
  68. // iterates over form's fields
  69. for (FileItem item : formItems) {
  70. // processes only fields that are not form fields
  71. if (!item.isFormField()) {
  72. String fileName = new File(item.getName()).getName();
  73. String filePath = uploadPath + File.separator + fileName;
  74. File storeFile = new File(filePath);
  75.  
  76. // saves the file on disk
  77. item.write(storeFile);
  78. request.setAttribute("message",
  79. "Upload has been done successfully!");
  80. }
  81. }
  82. }
  83. } catch (Exception ex) {
  84. request.setAttribute("message",
  85. "There was an error: " + ex.getMessage());
  86. }
  87. // redirects client to message page
  88. getServletContext().getRequestDispatcher("/").forward(request, response);
  89.  
  90. }
  91.  
  92. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement