java基于servlet实现文件上传功能

  

本文实例为大家分享了java基于servlet实现文件上传的具体代码,供大家参考,具体内容如下

  

研究了一天终于将java上传文件看懂了,当然懂的仅仅是皮,毛不妨记下来防止以后忘了。

  

我们在网上看关于文件的上传有很多的介绍,当然有的可以使用有的则不合适:我们首先来看前台的界面。

        & lt; !DOCTYPE html>   & lt; html lang=癳n”比;   & lt; head>   & lt;元charset=" utf - 8 "/比;   & lt; title>上传文件& lt;/title>   & lt;链接的href=" https://www.yisu.com/css/bootstrap.min.css " rel=把奖怼北?   & lt;脚本src=" https://www.yisu.com/js/jquery.min.js "祝辞& lt;/script>   & lt;脚本src=" https://www.yisu.com/js/bootstrap.min.js " type=" text/javascript祝辞& lt;/script>   & lt;/head>   & lt; body>   & lt; div类=叭萜鱧v-main”比;   & lt; div类=耙趁肌北?   & lt; h2>上传文件& lt;/h2>   & lt;/div>   & lt;形式enctype="多部分/格式" action=" . ./上传# 63;方法=uploadPic " method=" post "比;   & lt;输入名称="文件1 " type="文件"祝辞& lt; br>   & lt;按钮类型=疤峤弧眂lass=癰tn btn-primary祝辞Submit   & lt;按钮类型=爸刂谩眂lass=癰tn btn-default祝辞Reset   & lt;/form>   & lt; hr>   & lt; br>   & lt;/div>   & lt;/body>   & lt;/html>      

这个地方是为了好看使用了引导进行布的局,如下:

  

癹ava基于servlet实现文件上传功能"

  

在做好前台的页面之后,我们开看后台的代码,在看servlet之前我们首先来看看web . xml的配置:

        & lt; & # 63; xml version=" 1.0 " encoding=" utf - 8 " & # 63;比;   & lt; web xmlns: xsi=" http://www.w3.org/2001/XMLSchema-instance " xmlns=" http://java.sun.com/xml/ns/javaee " xsi: schemaLocation=" http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd " id=" WebApp_ID " version=" 3.0 "比;   & lt; display-name> myShop   & lt; welcome-file-list>   & lt; welcome-file> index.html   & lt; welcome-file> index.htm   & lt; welcome-file> index.jsp   & lt; welcome-file> default.html   & lt; welcome-file> default.htm   & lt; welcome-file> default.jsp   & lt;/welcome-file-list>      & lt; servlet>   & lt; servlet-name> upload   & lt; servlet-class> com.epoint.shop.fileupload.UpLoadServlet   & lt; init-param>   & lt; param-name> filePath   & lt; param-value> E://workspace1/myShop/WebContent/upload   & lt;/init-param>   & lt; init-param>   & lt; param-name> tempFilePath   & lt; param-value> temp   & lt;/init-param>   & lt;/servlet>      & lt; servlet-mapping>   & lt; servlet-name> upload   & lt; url-pattern>/upload   & lt;/servlet-mapping>   & lt;/web-app>      

为什么要配置web . xml,是因为我们在servlet有一个要获取文件存放的路径,我们不妨将这个路径存放到web . xml这个我们当我们的项目进行平台的迁移的时候,我们需要改动的只是web . xml不需要给java内部的核心的代码。

  

然后我们来看servlet的代码:

        包com.epoint.shop.fileupload;      进口java.io.File;   进口java.io.IOException;      进口java.io.PrintWriter;   进口java.lang.reflect.Method;   进口并不知道;      进口javax.servlet.ServletConfig;   进口javax.servlet.ServletException;   进口javax.servlet.annotation.WebServlet;   进口javax.servlet.http.HttpServlet;   进口javax.servlet.http.HttpServletRequest;   进口javax.servlet.http.HttpServletResponse;   进口org.apache.commons.fileupload.FileItem;   进口org.apache.commons.fileupload.disk.DiskFileItemFactory;   进口org.apache.commons.fileupload.servlet.ServletFileUpload;   @WebServlet("/上传”)   公开课UpLoadServlet扩展HttpServlet {   私有静态最终长serialVersionUID l=1;   私有静态字符串TEMP_FOLDER="/上传”;//上传配置   私有静态最终int MEMORY_THRESHOLD=1024 * 1024 * 3;//3 mb   私有静态最终int MAX_FILE_SIZE=1024 * 1024 * 40;//40 mb   私有静态最终int MAX_REQUEST_SIZE=1024 * 1024 * 50;//50 mb   私人字符串filePath;//存放上传文件的目录   私人字符串tempFilePath;//存放临时文件的目录      公共UpLoadServlet () {   超级();      }   公共空init (ServletConfig配置)抛出ServletException {   super.init(配置);   filePath=config.getInitParameter (“filePath”);   System.out.println (filePath);   }         保护无效doGet (HttpServletRequest请求,HttpServletResponse响应)抛出ServletException IOException {   doPost(请求、响应);   }   保护无效doPost (HttpServletRequest请求,HttpServletResponse响应)抛出ServletException IOException {   request.setCharacterEncoding (“utf - 8”);   response.setCharacterEncoding (“utf - 8”);   字符串methodName=request.getParameter(“法”);   如果(methodName !=null) {   尝试{   方法方法=this.getClass () .getDeclaredMethod (methodName, HttpServletRequest.class HttpServletResponse.class);   方法。调用(请求,响应);   }捕捉(异常e) {   e.printStackTrace ();   }         }   }   公共空间uploadPic (HttpServletRequest请求,HttpServletResponse响应){抛出异常//检测是否为多媒体上传      如果(! ServletFileUpload.isMultipartContent(请求)){//如果不是就停止   PrintWriter作家=response.getWriter ();   writer.println(“表单中必须包含enctype=多部分/格式”);   writer.flush ();   返回;   }   DiskFileItemFactory工厂=new DiskFileItemFactory ();//创建文件项目工厂对象   工厂。setRepository(新文件(savePath));null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

java基于servlet实现文件上传功能