// Check that we have a file upload request 检查是否是表单文件上请求
boolean isMultipart = ServletFileUpload.isMultipartContent(request);
// Create a new file upload handler 创建上传对象
ServletFileUpload upload = new ServletFileUpload();

// Parse the request
FileItemIterator iter = upload.getItemIterator(request); //得到所有的上传数据
while (iter.hasNext()) { //循环上传表单的元素
    FileItemStream item = iter.next();
    String name = item.getFieldName(); //得到元素名
    InputStream stream = item.openStream();
    if (item.isFormField()) { //如果是普通元素,打印元素名与值
        System.out.println("Form field " + name + " with value "
            + Streams.asString(stream) + " detected.");
    } else {//如果是文件型的元素,打印元素名与文件名
        System.out.println("File field " + name + " with file name "
            + item.getName() + " detected.");
        // Process the input stream
        ...//保存文件
    }
}