实现多文件上传功能(使用多个input type=file实现)
项目结构:
upload.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="/app/upload6" enctype="multipart/form-data" method="post">
<input type="file" name="image" ><br>
<input type="file" name="txt"><br>
<input type="text" name="username"><br>
<input type="password" name="password"><br>
<input type="submit">
</form>
</body>
</html>
User.java(JavBean数据封装)
package com.cskaoyan.request;
public class User {
private String username;
private String password;
private String image;
private String txt;
public User() {
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getImage() {
return image;
}
public void setImage(String image) {
this.image = image;
}
public String getTxt() {
return txt;
}
public void setTxt(String txt) {
this.txt = txt;
}
@Override
public String toString() {
return "User{" +
"username='" + username + '\'' +
", password='" + password + '\'' +
", image='" + image + '\'' +
", txt='" + txt + '\'' +
'}';
}
}
MyServlet.java
package com.cskaoyan.request;
import com.cskaoyan.request.User;
import com.cskaoyan.request.utils.FileUploadUtils;
import org.apache.commons.beanutils.BeanUtils;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.util.Map;
@WebServlet("/upload6")
public class MyServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("text/html;charset=utf-8");
try {
User user = new User();
Map<String, String> map = FileUploadUtils.parseRequest(req);
BeanUtils.populate(user, map);
resp.getWriter().println("上传成功,即将显示上传信息。");
System.out.println(user.toString());
getServletContext().setAttribute("user", user);
resp.setHeader("refresh", "8; url=" + req.getServletContext().getContextPath() + "/view");
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
}
}
ViewServlet.java
package com.cskaoyan.request;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/view")
public class ViewServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
User user = (User) getServletContext().getAttribute("user");
response.getWriter().println("<!DOCTYPE html>\n" +
"<html lang=\"en\">\n" +
"<head>\n" +
" <meta charset=\"UTF-8\">\n" +
" <title>Title</title>\n" +
"</head>\n" +
"<body>");
response.getWriter().println("<div>" + user.getUsername() + "</div>");
response.getWriter().println("<div>" + user.getPassword() + "</div>");
response.getWriter().println("<div><img src='" + request.getContextPath() + "/" + user.getImage() + "' /></div>");
response.getWriter().println("<iframe src=" + request.getContextPath() + "/" + user.getTxt() + "></iframe>");
response.getWriter().println("</body>\n" +
"</html>");
}
}
结果输出: