JSP上传文件到服务器(指定文件夹)

2025-09-30 18:37:00

1、创建文件上传表单

upload.html

<html>

<head>

<title>File Uploading Form</title>

</head>

<body>

<h3>File Upload:</h3>

Select a file to upload: <br />

<form action="UpLoadFile.jsp" method="post"

                        enctype="multipart/form-data">

<input type="file" name="file" size="50" />

<br />

<input type="submit" value="Upload File" />

</form>

</body>

</html>

2、创建处理数据的jsp

UpLoadFile.jsp

<%@page import="org.apache.tomcat.util.http.fileupload.servlet.ServletRequestContext"%>

<%@page import="org.apache.tomcat.util.http.fileupload.FileItem"%>

<%@page import="org.apache.tomcat.util.http.fileupload.servlet.ServletFileUpload"%>

<%@page import="org.apache.tomcat.util.http.fileupload.disk.DiskFileItemFactory"%>

<%@ page import="java.io.*,java.util.*, javax.servlet.*" %>

<%@ page import="javax.servlet.http.*" %>

<%

   File file ;

   int maxFileSize = 5000 * 1024;

   int maxMemSize = 5000 * 1024;

   ServletContext context = pageContext.getServletContext();

   String filePath = context.getInitParameter("file-upload");

   // ?????????

   String contentType = request.getContentType();

   if ((contentType.indexOf("multipart/form-data") >= 0)) {

      DiskFileItemFactory factory = new DiskFileItemFactory();

      // ?????????????

      factory.setSizeThreshold(maxMemSize);

      // ????????? maxMemSize.

      factory.setRepository(new File("c:\\temp"));

      // ??????????????

      ServletFileUpload upload = new ServletFileUpload(factory);

      // ???????????

      upload.setSizeMax( maxFileSize );

      try{ 

         // ???????

         //List fileItems = upload.parseRequest(request);//??????HttpServletRequest?????RequestContext

          List fileItems = upload.parseRequest(new ServletRequestContext(request));

         // ???????

         Iterator i = fileItems.iterator();

         out.println("<html>");

         out.println("<head>");

         out.println("<title>JSP File upload</title>");  

         out.println("</head>");

         out.println("<body>");

         while ( i.hasNext () ) 

         {

            FileItem fi = (FileItem)i.next();

            if ( !fi.isFormField () )

            {

            // ?????????

            String fieldName = fi.getFieldName();

            String fileName = fi.getName();

            boolean isInMemory = fi.isInMemory();

            long sizeInBytes = fi.getSize();

            // ????

            if( fileName.lastIndexOf("\\") >= 0 ){

            file = new File( filePath , 

            fileName.substring( fileName.lastIndexOf("\\"))) ;

            }else{

            file = new File( filePath ,

            fileName.substring(fileName.lastIndexOf("\\")+1)) ;

            }

            fi.write( file ) ;

            out.println("Uploaded Filename: " + filePath + 

            fileName + "<br>");

            }

         }

         out.println("</body>");

         out.println("</html>");

      }catch(Exception ex) {

         System.out.println(ex);

      }

   }else{

      out.println("<html>");

      out.println("<head>");

      out.println("<title>Servlet upload</title>");  

      out.println("</head>");

      out.println("<body>");

      out.println("No file uploaded"); 

      out.println("</body>");

      out.println("</html>");

   }

%>

3、创建web.xml文件

<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"

version="3.1">

    <context-param> 

    <description>Location to store uploaded file</description> 

    <param-name>file-upload</param-name> 

    <param-value>

        C:\Users\Administrator\Documents\NetBeansProjects\uploadfiles\web\temp

     </param-value> 

</context-param>

</web-app>

4、运行upload.html即可

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢