1.4 商品管理

准备:品牌、供应商管理

文件上传

后台
  • springmvc文件上传核心——MultipartFile接口
controller接收参数名要和jsp中控件封装的名字一致:
saveOrUpdate(Product product, MultipartFile pic)

ServletContext接口在ApplicationContext中,service可自动注入


  • 保存和更新
先判断图片非空

新增操作://获取upload文件夹在磁盘上的绝对路径
String realPath = ctx.getRealPath("/upload");
//工具类上传
String imagePath = UploadUtil.upload(pic, realPath);
//保存文件路径
product.setImagePath(imagePath);
然后保存


更新操作:
//用户上传了图片,而且之前已有图片
  if(pic!=null&&product.getImagePath()!=null){
  //删除之前的旧图片
UploadUtil.deleteFile(ctx,product.getImagePath());
  //保存新图片
  String realPath = ctx.getRealPath("/upload");
  String imagePath = UploadUtil.upload(pic, realPath);
  product.setImagePath(imagePath);
  }
然后更新

serviceImpl中依赖brandMapper,保存更新前,根据品牌编号查询出品牌名称设置给商品。
工具类UploadUtil:把文件保存到磁盘,路径保存到数据库
```
工具类中引用Thumbnails压缩图片
```
  • mvc中必须配置CommonsMultipartResolver文件上传解析器,不能改默认名字multipartResolver,在bean属性中设置上传参数
前台
  • 提交方式必须为post,编码方式multipart/form-data
  • 表单中上传控件

商品图片显示

在pic的input中增加img标签,src为${product.imgPath}

点击查看原图插件fancyBox

  • 引入js和css
fancyapps-fancyBox-18d1712/source/jquery.fancybox.js

<link href="/js/jquery/plugins/fancyapps-fancyBox-18d1712/source/jquery.fancybox.css" rel="stylesheet" type="text/css">

  • 插件代码
<script type="text/javascript">
   $(function () {
        $('.fancybox').fancybox();
    });
</script>

删除时要删除图片

  • UploadUtil.deleteFile(ctx, imagePath);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值