JavaWeb实现文件上传功能

这篇博客介绍了如何在JavaWeb应用中实现文件上传功能。通过使用Apache的FileUpload工具,解析request的字节输入流,处理POST请求中的multipart/form-data数据。文章详细讲解了实现文件上传所需的步骤,包括导入jar包、设置form表单属性以及编写解析请求的代码逻辑。
摘要由CSDN通过智能技术生成

1.概述

通常浏览器上传的所有参数,我们可以通过request对象的getParameter , getParameterMap , getParameterValue 这三个方法拿到所有的请求参数,
但有一种情况,当强求包含参数包含文件上传时, 这三个方法都失效,无法拿到参数,
我们就需要request对象的getInputStream方法获取这些参数, 如何解析这个字节输入流呢?
apache 软件基金会: 开发了工具fileupload工具, 专门解析字节输入流,实现文件上传功能.

2. 先导入jar包

打开pom文件, 加入fileupload的jar包依赖.
在这里插入图片描述

2.2 三要素

  1. 必须post请求
  2. form表单属性必须包含 enctype=“multipart/form-data”
  3. 上传文本框input type=“file” , 必须有name属性
    在这里插入图片描述
    在这里插入图片描述

2.3 代码逻辑

自定义一个parseRequest(request)方法, 返回map集合,map集合中封装了商品添加功能中提交所有的数据;
使用BeanUtils.populate(product,parameterMap)方法将map集合封装到product对象中; 调用业务层addProduct方法传递product对象参数,在dao层将新添加的商品写入数据库;

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
   
        Map<String, String[]> parameterMap = parseRequest(request);  //request.getParameterMap();
        Product product  = new Product();
        try {
   
            BeanUtils.populate(product,parameterMap);
        } catch (Exception e) {
   
            e.printStackTrace();
        }
        productService.addProduct(product);
        ResultVO resultVO = new ResultVO(ResultVO.SUCCESS,null,"商品添加成功");
        response.getWriter().print(objectMapper.writeValueAsString(resultVO));
    }

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值