找了好久都只有文件上传的
都没有携带参数的
这个可以获取普通的文本和上传文件
导入两个依赖
<dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>2.6</version></dependency><dependency><groupId>commons-fileupload</groupId><artifactId>commons-fileupload</artifactId><version>1.3.1</version></dependency>packagecom.flatly.servlet;importorg.apache.commons.fileupload.FileItem;importorg.apache.commons.fileupload.FileItemFactory;importorg.apache.commons.fileupload.disk.DiskFileItemFactory;importorg.apache.commons.fileupload.servlet.ServletFileUpload;importjavax.servlet.*;importjavax.servlet.http.*;importjavax.servlet.annotation.*;importjava.io.*;importjava.util.List;@WebServlet(name="UploadWork",value="/uploadwork")publicclassUploadWorkextendsHttpServlet{@OverrideprotectedvoiddoGet(HttpServletRequestreq,HttpServletResponseresp)throwsServletException,IOException{super.doGet(req,resp);}@OverrideprotectedvoiddoPost(HttpServletRequestreq,HttpServletResponseresp)throwsServletException,IOException{if(ServletFileUpload.isMultipartContent(req)){FileItemFactoryfileItemFactory=newDiskFileItemFactory();ServletFileUploadservletFileUpload=newServletFileUpload(fileItemFactory);servletFileUpload.setHeaderEncoding("utf-8");servletFileUpload.setFileSizeMax(1024*1024*100);try{List<FileItem>list=servletFileUpload.parseRequest(req);for(FileItemfileItem:list){if(fileItem.isFormField()){Stringid=fileItem.getString("UTF-8");}else{StringfileItemName=fileItem.getName();Stringsubname=fileItemName.substring(fileItemName.lastIndexOf("."),fileItemName.length());Stringfilename=java.util.UUID.randomUUID()+subname;StringrealPath=req.getServletContext().getRealPath("work");Filefile=newFile(realPath+"/"+filename);fileItem.write(file);}}}catch(Exceptione){e.printStackTrace();}}}}这里上传至webapp下的work目录
前台
<form action="testServlet"method="post"enctype="multipart/form-data"><input type="text"name="username"><input type="file"name="photo"><input type="submit"></form>packagecom.flatly.servlet;importorg.apache.commons.fileupload.FileItem;importorg.apache.commons.fileupload.FileItemFactory;importorg.apache.commons.fileupload.FileUploadException;importorg.apache.commons.fileupload.disk.DiskFileItemFactory;importorg.apache.commons.fileupload.servlet.ServletFileUpload;importjavax.servlet.*;importjavax.servlet.http.*;importjavax.servlet.annotation.*;importjava.io.IOException;importjava.util.List;@WebServlet(name="testServlet",value="/testServlet")publicclasstestServletextendsHttpServlet{@OverrideprotectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{this.doPost(request,response);}@OverrideprotectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{if(ServletFileUpload.isMultipartContent(request)){FileItemFactoryfileItemFactory=newDiskFileItemFactory();ServletFileUploadservletFileUpload=newServletFileUpload(fileItemFactory);try{List<FileItem>list=servletFileUpload.parseRequest(request);for(FileItemfileItem:list){if(fileItem.isFormField()){System.out.println("bname"+fileItem.getFieldName());System.out.println("bvalue"+fileItem.getString("UTF-8"));}else{System.out.println("xname"+fileItem.getFieldName());System.out.println("xvalue"+fileItem.getName());}}}catch(Exceptione){e.printStackTrace();}}}}servletFileUpload.parseRequest(request);解析数据
if(fileItem.isFormField()){遍历每个input判断是不是文件上传框
如果不是fileItem.getFieldName()获取每个input的name
fileItem.getString(“UTF-8”)获取每个input的值 这里可以获取text的值
如果不是 fileItem.write(file);可以用此方法上传文件写入服务器端