Servlet文件上传

1.创建upload.html文件为了提交上传表单

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>文件上传</title>
</head>
<body>
<!--
文件上传
1.准备表单
2.设置表单的提交类型为post请求 method="post"
3.设置表单类型为文件上传表单 enctype="multipart/form-data"
4.设置文件提交的地址
5.准备表单元素
    1.普通的表单项 type="text"
    2.文件项 type="file"
6.设置表单元素的name属性值(表单提交一定要设置表单元素的name属性值,否则后台无法接收数据!)

    -->
<form method="post" enctype="multipart/form-data" action="uploadServlet">
    姓名:<input type="text" name="uname"><br>
    文件:<input type="file" name="myfile"><br>
    <button>提交</button>

</form>
</body>
</html>

2.创建一个Java类,名称为uploadServlet,继承HttpServlet类,重写service方法

package servlet;

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;
@WebServlet("/uploadServlet") //路径
@MultipartConfig //如果是文件上传,必须加此注解
public class uploadServlet extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("文件上传...");
        //设置请求编码格式
        req.setCharacterEncoding("UTF-8");
        String name = req.getParameter("uname");
        System.out.println("uname:"+name);
        //获取part对象
        Part part = req.getPart("myfile");
        //通过Part对象得到上传的文件名
        String filename = part.getSubmittedFileName();
        System.out.println("上传的文件名:"+filename);
        //得到文件存放的路径
        String filepath = req.getServletContext().getRealPath("/");
        System.out.println("文件存放的路径:"+filepath);
        //上传文件到指定目录
        part.write(filepath+"/"+filename);




    }
}

3.启动tomcat服务器,打开第一个创建的网页upload.html

4.输入姓名,点击选择文件按钮,随便上传个文档文件,点击提交

5.我们启动idea查看控制台,结果如图所示

文件上传成功!可以打开文件存放的路径自行查看

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值