服务端处理多段数据的六个步骤
1.导入commons-fileupload类库及其所依赖commons-io类库
2.判断客户端发送的数据是否为多段数据
3.创建处理多段数据的工具类
4.解析多段数据,得到所有表单项
5.遍历判断解析到的表单项是普通类型还是文件类型
6.获得各自表单项的相关数据
客户端代码
<form action="http://192.168.31.74:8080/09_EL_JSTL/uploadServlet" method="post" enctype="multipart/form-data">
用户名:<input type="text" name="username" /> <br>
头像:<input type="file" name="photo" > <br>
<input type="submit" value="上传">
</form>
服务端代码
@Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { if(ServletFileUpload.isMultipartContent(req)) { FileItemFactory fileItemFactory = new DiskFileItemFactory(); ServletFileUpload servletFileUpload = new ServletFileUpload(fileItemFactory); try{ FileItem List<FileItem> list = servletFileUpload.parseRequest(req); for (FileItem fileItem : list){ if(fileItem.isFormField()) { System.out.println("表单项的 name 属性值:" + fileItem.getFieldName()); System.out.println("表单项的 value 属性值:" + fileItem.getString("UTF-8")); } else{ System.out.println("表单项的 name 属性值:" + fileItem.getFieldName()); System.out.println("上传的文件名:" + fileItem.getName()); fileItem.write(new File("d:\\" + fileItem.getName())); } } } catch(Exception e){ e.printStackTrace(); } } }
浙公网安备 33010602011771号