Servlet文件上传

1、创建servlet项目

2、编写前端页面(web下创建一个html)

<body>
<!--
 文件上传表单
 1. 表单提交类型 method="post"
 2. 表单类型 enctype="multipart/form-data"
 3. 表单元素类型 文件域设置name属性值
-->
<form method="post" action="uploadServlet" enctype="multipart/form-data">
    姓名:<input type="text" name="uname" > <br>
    文件:<input type="file" name="myfile" > <br>
    <button type="submit">提交</button>
</form>
</body>

后端代码实现

@WebServlet("/uploadServlet")
@MultipartConfig//如果是文件上传表单一定加这个注解
//Servlet将multipart/farm-data 的post请求封装为Part对象,通过Part对上传的文件进行操作
public class UploadServlet extends HttpServlet {
    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //设置请求编码的格式
        request.setCharacterEncoding("UTF-8");
        //获取普通的表单项(文本框)
        String uname = request.getParameter("uname");//"uname"代表的是文本框的name属性值
        //通过getPart(name)方法获取Part对象(name代表的是页面中file文件域的name属性值)
        System.out.println("uname"+uname);
        Part part = request.getPart("myfile");
        //通过Part对象,获取上传的文件名
        String fileName= part.getSubmittedFileName();
        System.out.println("上传文件名"+fileName);
        //得到文件上传需要存放的路径(得到项目存放的真实路径)
        String realPath = request.getServletContext().getRealPath("/");
        System.out.println("文件存放的路径:"+realPath);
        //将文件上传到指定位置
        part.write(realPath+"/"+fileName);
    }
}

分析:

上传一个文件,发送的请求会封装为一个Part对象

首先获取Part对象,获取前端页面上传文件设置好的名字,封装在Part里面;

其次选择好要上传的文件之后,获取到上传的文件名;

然后再得到这个文件要上传到哪个地方;

最后就是将文件上传到指定位置就可以了。

 输出结果

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值