服务端处理多段数据的六个步骤

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(); 
        } 
    } 
}

 

posted on 2022-02-26 10:51  金满仓  阅读(90)  评论(0)    收藏  举报

导航