Cool
Cool
Published on 2021-05-15 / 33 Visits
0
0

tomcat 上传文件

前端

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>上传</title>
</head>
<body>
<form action="uploadfile" method="post" enctype = "multipart/form-data">
    <input type="file" name="filename" id="" value=""/>
    <input type="submit" value="上传"/>
</form>

</body>
</html>

servletz这样写

package com.icis.servlet;

import javax.servlet.ServletContext;
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.FileWriter;
import java.io.IOException;
//一定要添加@MultipartConfig注解!!!!!
@MultipartConfig
@WebServlet("/uploadfile")
public class Uploadservlet extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("UTF-8");
        response.setContentType("text/html;charset=utf-8");
        //定位前端传来的的文件
        Part file = request.getPart("filename");
        //获取文件名
        String filename = file.getSubmittedFileName();
        System.out.println(filename);
        //获取写入tomcat服务器资源下的路径
        ServletContext servletContext = this.getServletContext();
        //realPath是服务器路径
        String realPath = servletContext.getRealPath("/anyresources");
        file.write(realPath + "/" + filename);

    }

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doPost(request, response);
    }
}

{message type="warning" content="Servlet一定要添加@MultipartConfig注解!!!!!"/}

{callout color="#ef4d58"} 前端Form表单属性一定要添加 method="post" enctype = "multipart/form-data" 特别是enctype = "multipart/form-data"一个符号都不能错" {/callout}


Comment