ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

apache文件上传并获取参数获取text文本数据和上传

apache文件上传并获取参数获取text文本数据和上传 找了好久都只有文件上传的都没有携带参数的这个可以获取普通的文本和上传文件导入两个依赖dependencygroupIdcommons-io/groupIdartifactIdcommons-io/artifactIdversion2.6/version/dependencydependencygroupIdcommons-fileupload/groupIdartifactIdcommons-fileupload/artifactIdversion1.3.1/version/dependencypackagecom.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(nameUploadWork,value/uploadwork)publicclassUploadWorkextendsHttpServlet{OverrideprotectedvoiddoGet(HttpServletRequestreq,HttpServletResponseresp)throwsServletException,IOException{super.doGet(req,resp);}OverrideprotectedvoiddoPost(HttpServletRequestreq,HttpServletResponseresp)throwsServletException,IOException{if(ServletFileUpload.isMultipartContent(req)){FileItemFactoryfileItemFactorynewDiskFileItemFactory();ServletFileUploadservletFileUploadnewServletFileUpload(fileItemFactory);servletFileUpload.setHeaderEncoding(utf-8);servletFileUpload.setFileSizeMax(1024*1024*100);try{ListFileItemlistservletFileUpload.parseRequest(req);for(FileItemfileItem:list){if(fileItem.isFormField()){StringidfileItem.getString(UTF-8);}else{StringfileItemNamefileItem.getName();StringsubnamefileItemName.substring(fileItemName.lastIndexOf(.),fileItemName.length());Stringfilenamejava.util.UUID.randomUUID()subname;StringrealPathreq.getServletContext().getRealPath(work);FilefilenewFile(realPath/filename);fileItem.write(file);}}}catch(Exceptione){e.printStackTrace();}}}}这里上传至webapp下的work目录前台form actiontestServletmethodpostenctypemultipart/form-datainput typetextnameusernameinput typefilenamephotoinput typesubmit/formpackagecom.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(nametestServlet,value/testServlet)publicclasstestServletextendsHttpServlet{OverrideprotectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{this.doPost(request,response);}OverrideprotectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{if(ServletFileUpload.isMultipartContent(request)){FileItemFactoryfileItemFactorynewDiskFileItemFactory();ServletFileUploadservletFileUploadnewServletFileUpload(fileItemFactory);try{ListFileItemlistservletFileUpload.parseRequest(request);for(FileItemfileItem:list){if(fileItem.isFormField()){System.out.println(bnamefileItem.getFieldName());System.out.println(bvaluefileItem.getString(UTF-8));}else{System.out.println(xnamefileItem.getFieldName());System.out.println(xvaluefileItem.getName());}}}catch(Exceptione){e.printStackTrace();}}}}servletFileUpload.parseRequest(request);解析数据if(fileItem.isFormField()){遍历每个input判断是不是文件上传框如果不是fileItem.getFieldName()获取每个input的namefileItem.getString(“UTF-8”)获取每个input的值 这里可以获取text的值如果不是 fileItem.write(file);可以用此方法上传文件写入服务器端
返回列表