/[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 2860 - (hide annotations) (download)
Thu Jan 28 10:57:26 2016 UTC (8 years, 4 months ago) by torben
File size: 4005 byte(s)
FindBugs
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 torben 2860 default:
88     System.out.println("Unknown form field: " + i.getFieldName() );
89 torben 2838 }
90    
91     } else {
92     System.out.println("received " + i.getSize() + " bytes in " + i.getName() + " " + i.getContentType());
93     item = i;
94     }
95     }
96    
97     if (item == null) {
98     System.out.println("No file uploaded");
99     return;
100     }
101     if (distributor == null || distributor.equals("")) {
102     item.delete();
103     return;
104     }
105    
106    
107    
108     distributor = distributor.toUpperCase();
109    
110     AddressSource source = null;
111    
112     switch (distributor) {
113     case "BK":
114     source = new AddressSourceBK( item );
115 torben 2844 break;
116     case "DAO":
117     source = new AddressSourceDAO( item );
118     break;
119 torben 2852 case "FD":
120     source = new AddressSourceFD( item );
121     break;
122 torben 2851 case "NS":
123     source = new AddressSourceNS( item );
124     break;
125 torben 2838 default:
126     System.out.println("Unknown distributor: " + distributor);
127     item.delete();
128     return;
129     }
130    
131     TaskManager taskManager = (TaskManager) this.getServletContext().getAttribute(TaskManager.TASKMANAGER);
132     AddressTask task = new AddressTask(source, writeback);
133     taskManager.submitTask(task);
134    
135    
136    
137     }
138     catch (FileUploadException fue) {
139     System.out.println("UploadException: " + fue.getMessage() );
140    
141     }
142     catch (Exception e) {
143     throw new ServletException(e);
144     }
145    
146     response.getWriter().write("OK");
147     }
148    
149     }

  ViewVC Help
Powered by ViewVC 1.1.20