本篇内容介绍了“java实现文件上传的方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

我们在java开发工具中如果要实现文件的上传功能时,我们需要依靠 Apache 组织的Commons-io.jar、Commons-fileupload.jar这两个架包。

1.创建新的项目这边小编给他命名为fileupdate大家可以按照自己的想法命名,将架包放在我们项目中的WEB-INF/lib文件夹下,如下图:



2.index.jsp页面代码如下:

<%@pagelanguage="java"import="java.util.*"pageEncoding="UTF-8"%><!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN"><html><head><title>文件上传</title></head><body><divalign="center"><formaction="UploadServlet"enctype="multipart/form-data"method="post">名称:<inputname="name"/><br>上传文件:<inputname="img"type="file"/><br><inputtype="submit"value="提交"/>&nbsp;&nbsp;<inputtype="reset"value="重置"/></form></div></body></html>

message.jsp代码如下:

<%@pagelanguage="java"import="java.util.*"pageEncoding="UTF-8"%><!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN"><html><head><title>上传文件成功</title></head><body><h2align="center">上传文件成功!</h2></body></html>


3.UploadSerlvet代码:

importjava.io.File;importjava.io.IOException;importjava.io.PrintWriter;importjava.util.ArrayList;importjava.util.List;importjava.util.UUID;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importorg.apache.commons.fileupload.FileItem;importorg.apache.commons.fileupload.FileUploadException;importorg.apache.commons.fileupload.disk.DiskFileItemFactory;importorg.apache.commons.fileupload.servlet.ServletFileUpload;importorg.apache.commons.io.FileUtils;publicclassUploadServletextendsHttpServlet{publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{this.doPost(request,response);}publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{response.setContentType("text/html");PrintWriterout=response.getWriter();DiskFileItemFactorysf=newDiskFileItemFactory();//实例化磁盘被文件列表工厂Stringpath=request.getRealPath("/upload");//得到上传文件的存放目录sf.setRepository(newFile(path));//设置文件存放目录sf.setSizeThreshold(1024*1024);//设置文件上传小于1M放在内存中Stringrename="";//文件新生成的文件名StringfileName="";//文件原名称Stringname="";//普通field字段//从工厂得到servletupload文件上传类ServletFileUploadsfu=newServletFileUpload(sf);try{List<FileItem>lst=sfu.parseRequest(request);//得到request中所有的元素for(FileItemfileItem:lst){if(fileItem.isFormField()){if("name".equals(fileItem.getFieldName())){name=fileItem.getString("UTF-8");}}else{//获得文件名称fileName=fileItem.getName();fileName=fileName.substring(fileName.lastIndexOf("\\")+1);Stringhouzhui=fileName.substring(fileName.lastIndexOf("."));rename=UUID.randomUUID()+houzhui;fileItem.write(newFile(path,rename));}}}catch(Exceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}response.sendRedirect("message.jsp");out.flush();out.close();}}

当我们创建完成后一般会在web.xml自动配置相关信息

“java实现文件上传的方法”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!