为了账号安全,请及时绑定邮箱和手机立即绑定

SpringMVC —— 上传图片

标签:
Java SSM

       图片上传普遍的实际开发中运用场景很广,知识点不是很难但需要注意的细节很多,往往可能因为一个细节的疏忽而导致整个上传功能不能很好的实现。为方便日常开发,特记下一个完整的实现案例以供参考。本文使用的开发工具为IDEA。

      (1)前端页面

       <form ... enctype="multipart/form-data">  <%--修改提交的表单数据的编码方式--%>
<tr>
   <td>商品图片</td>
   <td>
      <c:if test="${itemsCustom.pic !=null}">
            <%--/picll为tomcat的server.xml中配置的虚拟目录--%>
         <img class="lazyload" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC" data-original="/picll/${itemsCustom.pic}" width=100 height=100/>
         <br/>
      </c:if>
      <input type="file"  name="items_pic"/>
   </td>
</tr>

      (2)后台Controller

//获取原始名称
String originalFilename = items_pic.getOriginalFilename();
System.out.println("orginalFileName:  "+originalFilename);
//上传图片
if(items_pic!=null&&originalFilename!=null&&originalFilename.length()>0){
    //存储图片的绝对物理路径
    String pic_path = "C:\\Users\\Administrator\\Desktop\\springmvctest\\test\\src\\main\\webapp\\WEB-INF\\jsp\\items\\pic\\";
    //新图片的名称
    String newFileName = UUID.randomUUID() + originalFilename.substring(originalFilename.lastIndexOf("."));
    //新图片
    File newFile = new File(pic_path + newFileName);
    //将内存中的数据写入磁盘
    items_pic.transferTo(newFile);
    //将新图片的名称写到itemsCustom对象中
    itemsCustom.setPic(newFileName);
}

     (3)虚拟目录的配置

        两种方式:

       (一)使用IDEA热部署的情况下,只需要在Edit Configurations下的Deployment中添加External Source中选择图片上传的物理路径,然后在Appliaction Context中设置path名称即可。

      

https://img1.sycdn.imooc.com//5c2c82e10001506804370164.jpg

     

https://img1.sycdn.imooc.com//5c2c839f0001d98f11040481.jpg

        (二)直接在tomcat服务器下的server.xml中配置。

<!--添加虚拟目录-->

<Context path="/picll" docBase="C:\Users\Administrator\Desktop\springmvctest\test\src\main\webapp\WEB-INF\jsp\items\pic" />


点击查看更多内容
1人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消