/[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 2838 - (hide annotations) (download)
Sun Jan 24 21:48:55 2016 UTC (8 years, 4 months ago) by torben
File size: 3620 byte(s)
Add first working edition
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     /**
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