Loading

文件上传:tomcat+servlet

dependency

<dependencies>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>4.0.1</version>
        <scope>provided</scope>
    </dependency>
</dependencies>

项目结构

folder java
   package com.shit.stest1
      UploadServlet.jsp
folder webapp
   upload.jsp

前端页面:upload.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
    <form action="upload" enctype="multipart/form-data" method="post">
        <input type="file" accept="" id="upfile" name="upfile">
        <input type="submit" value="提交">
    </form>
</body>
</html>

后端:UploadServlet

package com.shit.stest1;

import javax.servlet.ServletException;
import javax.servlet.annotation.MultipartConfig;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.Part;
import java.io.IOException;
import java.util.UUID;

@MultipartConfig(location="D:/ware", fileSizeThreshold=1024*102,maxFileSize=1024*1024*5, maxRequestSize=1024*1024*5*5)
@WebServlet("/upload")
public class UploadServlet extends HttpServlet {

    /**
     * if the file-size is beyond limit, browser shows ERR_CONNECTION_RESET
     */
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        Part part=req.getPart("upfile");

        String fileName=part.getSubmittedFileName();
        String typeName=fileName.substring(fileName.lastIndexOf('.'));

        String responseWord="";
        try{
            part.write(UUID.randomUUID()+typeName);
            responseWord=fileName+" uploading is success";
        }catch (Exception e){
            responseWord=fileName+" uploading is failure";
        }
        resp.getWriter().print(responseWord);
    }

}

测试

浏览器访问/upfile.jsp,上传文件,跳转upfile页面(uploadServlet),显示结果。

在本地文件夹“D:/ware”中查看对应的文件,注意名称是uuid的随机名。

说明:如未选择文件便上传,会抛异常页面。

posted @ 2021-05-26 14:22  Xaf17  阅读(133)  评论(0)    收藏  举报