@WebServlet("/uploadWithParams")
public class AServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
DiskFileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
upload.setHeaderEncoding("UTF-8");
if(!ServletFileUpload.isMultipartContent(req)){
System.out.println("不是上传文件,终止");
return;
}
Map<String,String> map = new HashMap<>();
try {
List<FileItem> items =upload.parseRequest(new ServletRequestContext(req));
for (FileItem item:items){
//判断是否是普通的表单类型
if (item.isFormField()){
System.out.println(item.getFieldName()+":"+item.getString("UTF-8"));
map.put(item.getFieldName(),item.getString("UTF-8"));
} else {
String fileName = new File(item.getName()).getName();
String filePath = "/path/" + fileName;
File storeFile = new File(filePath);
// 保存文件到硬盘
item.write(storeFile);
}
}
} catch (Exception e) {
e.printStackTrace();
}
PrintWriter out=resp.getWriter();
resp.setHeader("Content-type", "text/html;charset=UTF-8");
resp.setCharacterEncoding("UTF-8");
out.write(map.toString());
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
}
}
form上传文件并且获取表单里的参数
最新推荐文章于 2023-04-28 10:16:42 发布