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

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

Parent Directory Parent Directory | Revision Log Revision Log


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

  ViewVC Help
Powered by ViewVC 1.1.20