后台系统图片上传与jsp页面显示

1.配置springmvc.xml的配置文件

 <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"
          p:defaultEncoding="utf-8"
          p:maxUploadSize="21474836480"
    >
    </bean>

1.设置默认字符编码

 p:defaultEncoding="utf-8"

2.设置最大上传大小 单位默认为b 这里是20g

 p:maxUploadSize="21474836480"

注意不要漏掉id 否则jsp页面传值报错误。

2.前端表单

<form action="updateFile" method="post" enctype="multipart/form-data">
    <input type="file" name="file" id="file" value="" />
    <input type="submit" value="上传文件"/>
</form>

注意 不要漏掉enctype=“multipart/form-data” 否则传值报错

3.控制器层

@RequestMapping("/add")
    public String add(Goods goods, @RequestParam("file") MultipartFile file, HttpServletRequest request) throws IOException {
        //读取服务器里面的存放文件文件夹的路径
        String path = request.getSession().getServletContext().getRealPath("img");
        System.out.println(path);
        // oos云盘
        File f = new File(path);
        if (!f.exists()) {
            f.mkdirs();
        }
        String uuid = UUID.randomUUID().toString();
        File f1 = new File(path + "/" + uuid + file.getOriginalFilename().substring(file.getOriginalFilename().indexOf("."), file.getOriginalFilename().length()));
        f1.createNewFile();
        FileCopyUtils.copy(file.getBytes(), f1);
        goods.setUrl(path + "/" + uuid + file.getOriginalFilename().substring(file.getOriginalFilename().indexOf("."), file.getOriginalFilename().length()));
        goods.setFilename(file.getOriginalFilename());
        goods.setUrls("/img/" + uuid + file.getOriginalFilename().substring(file.getOriginalFilename().indexOf("."), file.getOriginalFilename().length()));
        //设置默认商品图片路由
        goods.setGood_img("/img/" + uuid + file.getOriginalFilename().substring(file.getOriginalFilename().indexOf("."), file.getOriginalFilename().length()));
        goodsService.add(goods);
        return "redirect:/goods/list";
    }

4.jsp页面显示

 <img src="${pageContext.request.contextPath}${e.good_img}"/>

只需项目路由和图片路由即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值