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

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

Parent Directory Parent Directory | Revision Log Revision Log


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

  ViewVC Help
Powered by ViewVC 1.1.20