• 前端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>

    文件结构:

  • 相关阅读:
    【转载】python自动提取文本中的时间(包含中文日期)
    【转载】PCA降维
    【转载】从头到尾彻底理解KMP算法
    【转载】傅里叶分析之掐死教程(完整版)更新于2014.06.06(Heinrich)
    【转载】白素贞的身世之谜
    React 路由参数改变页面不刷新问题
    前端学习资源笔记
    Nginx配置网站默认https
    基于Docker搭建大数据集群(一)Docker环境部署
    基于Docker搭建大数据集群(三)Hadoop部署
  • 原文地址:https://www.cnblogs.com/huhuuu/p/4294173.html
Copyright © 2020-2023  润新知