JavaEE - Servlet(向服务器上传文件 Part类)

我们在需要向服务器上传文件时,在前端需要使用form表单,form表单需要使用特殊的类型 form-data

此时提交文件的时候,浏览器会把文件内容以form-data的格式构造到HTTP请求中,服务器就可以通过getPart获取了

需要注意:

  1. 一个HTTP请求,可以一次提交多个文件,每个文件都称为一个Part。
  2. 每一个Part都有一个name标识,服务器可以通过name找到对应的Part。这个name对应了input标签的name属性

服务器getPart函数获取到的Part类提供的方法

方法
String getSubmittedFileName()获取提交文件名
String getContentType()获取提交文件类型
long getSize()获取文件大小
void writeString(String Path)将提交的文件写入到磁盘文件中

后端要想成功使用getPart函数,需要在处理post请求的类前加上@MultipartConfig注解,否则会调用失败。

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>上传文件</title>
</head>

<body>
    <form action="upload" method="post" enctype="multipart/form-data">
        <input type="file" name="img">
        <input type="submit" value="提交">
    </form>
</body>

</html>
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;

@MultipartConfig
@WebServlet("/upload")
public class UpLoad extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        Part part = req.getPart("img");
        System.out.println(part.getSize());
        System.out.println(part.getSubmittedFileName());
        System.out.println(part.getContentType());

        //这里选择写入图片文件
        part.write("E:\\TmpBuff\\tmp.jpg");

        resp.setContentType("text/html;charset=utf8");
        resp.getWriter().write("上传成功");
    }
}

在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NUC_Dodamce

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值