/[projects]/dao/DaoAdresseVedligehold/src/main/java/dk/daoas/adressevedligehold/coveragefileupload/FileUploadServlet.java
ViewVC logotype

Contents of /dao/DaoAdresseVedligehold/src/main/java/dk/daoas/adressevedligehold/coveragefileupload/FileUploadServlet.java

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2838 - (show annotations) (download)
Sun Jan 24 21:48:55 2016 UTC (8 years, 4 months ago) by torben
Original Path: dao/DaoAdresseVedligehold/src/main/java/dk/daoas/adressevedligehold/FileUploadServlet.java
File size: 3620 byte(s)
Add first working edition
1 package dk.daoas.adressevedligehold;
2
3 import java.io.File;
4 import java.io.IOException;
5 import java.util.List;
6
7 import javax.servlet.ServletContext;
8 import javax.servlet.ServletException;
9 import javax.servlet.annotation.WebServlet;
10 import javax.servlet.http.HttpServlet;
11 import javax.servlet.http.HttpServletRequest;
12 import javax.servlet.http.HttpServletResponse;
13
14 import org.apache.commons.fileupload.FileItem;
15 import org.apache.commons.fileupload.FileUploadException;
16 import org.apache.commons.fileupload.disk.DiskFileItemFactory;
17 import org.apache.commons.fileupload.servlet.ServletFileUpload;
18
19 import dk.daoas.adressevedligehold.tasks.TaskManager;
20
21 /**
22 * Servlet implementation class FileUploadServlet
23 */
24 @WebServlet("/FileUploadServlet")
25 public class FileUploadServlet extends HttpServlet {
26 private static final long serialVersionUID = 1L;
27
28 public FileUploadServlet() {
29 super();
30 }
31
32 /*
33 * https://commons.apache.org/proper/commons-fileupload/using.html
34 */
35 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
36 // Create a factory for disk-based file items
37 DiskFileItemFactory factory = new DiskFileItemFactory();
38
39 // Configure a repository (to ensure a secure temp location is used)
40 ServletContext servletContext = this.getServletConfig().getServletContext();
41 File repository = (File) servletContext.getAttribute("javax.servlet.context.tempdir");
42
43 System.out.println( "Path: " + repository.getPath() );
44
45 factory.setRepository(repository);
46
47 // Create a new file upload handler
48 ServletFileUpload upload = new ServletFileUpload(factory);
49
50 try {
51 // Parse the request
52 List<FileItem> items = upload.parseRequest(request);
53
54 if ( items.size() == 0) {
55 System.out.println("No file uploaded");
56 return;
57 }
58
59 if ( items.size() >1) {
60 System.out.println("Uploaded " + items.size() + " items");
61 }
62
63
64 String distributor = null;
65 FileItem item = null;
66 boolean writeback = false;
67
68 for (FileItem i : items) {
69
70
71 if (i.isFormField()) {
72 System.out.println("FormField: " + i.getFieldName() + "=" + i.getString() );
73
74 switch (i.getFieldName().toLowerCase()) {
75 case "distributor":
76 distributor = i.getString();
77 break;
78 case "writeback":
79 writeback = Boolean.parseBoolean( i.getString() );
80 break;
81 }
82
83 } else {
84 System.out.println("received " + i.getSize() + " bytes in " + i.getName() + " " + i.getContentType());
85 item = i;
86 }
87 }
88
89 if (item == null) {
90 System.out.println("No file uploaded");
91 return;
92 }
93 if (distributor == null || distributor.equals("")) {
94 item.delete();
95 return;
96 }
97
98
99
100 distributor = distributor.toUpperCase();
101
102 AddressSource source = null;
103
104 switch (distributor) {
105 case "BK":
106 source = new AddressSourceBK( item );
107 break;
108 default:
109 System.out.println("Unknown distributor: " + distributor);
110 item.delete();
111 return;
112 }
113
114 TaskManager taskManager = (TaskManager) this.getServletContext().getAttribute(TaskManager.TASKMANAGER);
115 AddressTask task = new AddressTask(source, writeback);
116 taskManager.submitTask(task);
117
118
119
120 }
121 catch (FileUploadException fue) {
122 System.out.println("UploadException: " + fue.getMessage() );
123
124 }
125 catch (Exception e) {
126 throw new ServletException(e);
127 }
128
129 response.getWriter().write("OK");
130 }
131
132 }

  ViewVC Help
Powered by ViewVC 1.1.20