Skip to content

Commit 94ec2e1

Browse files
committed
4_3_HW3_upload_servlet3
1 parent 11f95b5 commit 94ec2e1

2 files changed

Lines changed: 13 additions & 23 deletions

File tree

web/common-web/pom.xml

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,6 @@
2121
<artifactId>common</artifactId>
2222
<version>${project.version}</version>
2323
</dependency>
24-
<dependency>
25-
<groupId>commons-fileupload</groupId>
26-
<artifactId>commons-fileupload</artifactId>
27-
<version>1.3.3</version>
28-
</dependency>
2924
<dependency>
3025
<groupId>javax.servlet</groupId>
3126
<artifactId>javax.servlet-api</artifactId>

web/upload/src/main/java/ru/javaops/masterjava/upload/UploadServlet.java

Lines changed: 13 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,23 @@
11
package ru.javaops.masterjava.upload;
22

3-
import org.apache.commons.fileupload.FileItemIterator;
4-
import org.apache.commons.fileupload.FileItemStream;
5-
import org.apache.commons.fileupload.servlet.ServletFileUpload;
63
import org.thymeleaf.context.WebContext;
74
import ru.javaops.masterjava.model.User;
85

96
import javax.servlet.ServletException;
7+
import javax.servlet.annotation.MultipartConfig;
108
import javax.servlet.annotation.WebServlet;
119
import javax.servlet.http.HttpServlet;
1210
import javax.servlet.http.HttpServletRequest;
1311
import javax.servlet.http.HttpServletResponse;
12+
import javax.servlet.http.Part;
1413
import java.io.IOException;
1514
import java.io.InputStream;
1615
import java.util.List;
1716

1817
import static ru.javaops.masterjava.common.web.ThymeleafListener.engine;
1918

20-
@WebServlet("/")
19+
@WebServlet(urlPatterns = "/", loadOnStartup = 1)
20+
@MultipartConfig(fileSizeThreshold = 1024 * 1024 * 10) //10 MB in memory limit
2121
public class UploadServlet extends HttpServlet {
2222

2323
private final UserProcessor userProcessor = new UserProcessor();
@@ -30,23 +30,18 @@ protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws Se
3030

3131
@Override
3232
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
33-
final ServletFileUpload upload = new ServletFileUpload();
3433
final WebContext webContext = new WebContext(req, resp, req.getServletContext(), req.getLocale());
3534

3635
try {
37-
// https://commons.apache.org/proper/commons-fileupload/streaming.html
38-
39-
final FileItemIterator itemIterator = upload.getItemIterator(req);
40-
while (itemIterator.hasNext()) { //expect that it's only one file
41-
FileItemStream fileItemStream = itemIterator.next();
42-
if (!fileItemStream.isFormField()) {
43-
try (InputStream is = fileItemStream.openStream()) {
44-
List<User> users = userProcessor.process(is);
45-
webContext.setVariable("users", users);
46-
engine.process("result", webContext, resp.getWriter());
47-
}
48-
break;
49-
}
36+
// http://docs.oracle.com/javaee/6/tutorial/doc/glraq.html
37+
Part filePart = req.getPart("fileToUpload");
38+
if (filePart.getSize() == 0) {
39+
throw new IllegalStateException("Upload file have not been selected");
40+
}
41+
try (InputStream is = filePart.getInputStream()) {
42+
List<User> users = userProcessor.process(is);
43+
webContext.setVariable("users", users);
44+
engine.process("result", webContext, resp.getWriter());
5045
}
5146
} catch (Exception e) {
5247
webContext.setVariable("exception", e);

0 commit comments

Comments
 (0)