前端js上传文件 到后端接收文件

下面是前端js代码:

<html>

<head>

    <meta http-equiv="Content-Type" content="text/html; charset=GB18030">

    <title>File upload</title>

</head>

<body>

<!--  // action="fileupload"对应web.xml中<servlet-mapping>中<url-pattern>的设置. -->

    <form name="myform" action="fileupload" method="post"

       enctype="multipart/form-data">

       File:<br>

       <input type="file" name="myfile"><br>

       <br>

       <input type="submit" name="submit" value="Commit">

    </form>

</body>

</html>

下面是后端的java代码:

package com.zj.sample;



import java.io.File;

import java.io.IOException;

import java.util.Iterator;

import java.util.List;

 



import javax.servlet.ServletException;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

 



import org.apache.commons.fileupload.FileItem;

import org.apache.commons.fileupload.disk.DiskFileItemFactory;

import org.apache.commons.fileupload.servlet.ServletFileUpload;

 



/**

 * Servlet implementation class Upload

 */

@WebServlet("/Upload")

public class Upload extends HttpServlet {

    private static final long serialVersionUID = 1L;

    private String uploadPath = "D:\\temp"; // 上传文件的目录

    private String tempPath = "d:\\temp\\buffer\\"; // 临时文件目录

    File tempPathFile; 

    /**

     * @see HttpServlet#HttpServlet()

     */

    public Upload() {

        super();

        // TODO Auto-generated constructor stub

    }



    /**

     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)

     */

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        // TODO Auto-generated method stub

    }



    /**

     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)

     */

    @SuppressWarnings("unchecked")

    public void doPost(HttpServletRequest request, HttpServletResponse response)

           throws IOException, ServletException {

       try {

           // Create a factory for disk-based file items

           DiskFileItemFactory factory = new DiskFileItemFactory();

 

           // Set factory constraints

           factory.setSizeThreshold(4096); // 设置缓冲区大小,这里是4kb

           factory.setRepository(tempPathFile);// 设置缓冲区目录

 

           // Create a new file upload handler

           ServletFileUpload upload = new ServletFileUpload(factory);

 

           // Set overall request size constraint

           upload.setSizeMax(4194304); // 设置最大文件尺寸,这里是4MB

 

           List<FileItem> items = upload.parseRequest(request);// 得到所有的文件

           Iterator<FileItem> i = items.iterator();

           while (i.hasNext()) {

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

              String fileName = fi.getName();

              if (fileName != null) {

                  File fullFile = new File(fi.getName());

                  File savedFile = new File(uploadPath, fullFile.getName());

                  fi.write(savedFile);

              }

           }

           System.out.print("upload succeed");

       } catch (Exception e) {

           // 可以跳转出错页面

           e.printStackTrace();

       }

    }

    public void init() throws ServletException {

        File uploadFile = new File(uploadPath);

        if (!uploadFile.exists()) {

            uploadFile.mkdirs();

        }

        File tempPathFile = new File(tempPath);

         if (!tempPathFile.exists()) {

            tempPathFile.mkdirs();

        }

     }

}

web.xml 的配置

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

<web-app 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">

  <display-name>tom2</display-name>

  <welcome-file-list>

    <welcome-file>index.html</welcome-file>

    <welcome-file>index.htm</welcome-file>

    <welcome-file>index.jsp</welcome-file>

    <welcome-file>default.html</welcome-file>

    <welcome-file>default.htm</welcome-file>

    <welcome-file>default.jsp</welcome-file>

  </welcome-file-list>

  <servlet>

    <servlet-name>Upload</servlet-name>

    <servlet-class>com.zj.sample.Upload</servlet-class>

  </servlet>

  <servlet-mapping>

    <servlet-name>Upload</servlet-name>

    <url-pattern>/home/fileupload</url-pattern>

  </servlet-mapping>

</web-app>

 

文件结构:

前端js上传文件 到后端接收文件

 

你可能感兴趣的:(上传文件)