springmvc注解开发-高级之图片上传

1.1    上传图片

 

在页面form中提交enctype="multipart/form-data"的数据时,需要springmvc对multipart类型的数据进行解析。

 

在springmvc.xml中配置multipart类型解析器。


1.1.1 配置虚拟目录

在tomcat上配置图片虚拟目录,在tomcat下conf/server.xml中添加:

<Context docBase="F:\develop\upload\temp"path="/pic" reloadable="false"/>

 

访问http://localhost:8080/pic即可访问F:\develop\upload\temp下的图片。

 

注意:在图片虚拟目录中,一定将图片目录分级创建(提高i/o性能),一般我们采用按日期(年、月、日)进行分级创建。

也可以通过eclipse配置:

 

 

1.1.2 配置解析器

<!-- 文件上传 -->

    <bean id="multipartResolver"

       class="org.springframework.web.multipart.commons.CommonsMultipartResolver">

       <!-- 设置上传文件的最大尺寸为5MB -->

       <property name="maxUploadSize">

           <value>5242880</value>

       </property>

    </bean>

 

1.1.3 jar包

CommonsMultipartResolver解析器依赖commons-fileupload和commons-io,加入如下jar包:

 

1.1.4 图片上传

u  controller:

 

//商品修改提交

    @RequestMapping("/editItemSubmit")

    public String editItemSubmit(Items items, MultipartFilepictureFile)throws Exception{

      

       //原始文件名称

       String pictureFile_name = pictureFile.getOriginalFilename();

       //新文件名称

       String newFileName = UUID.randomUUID().toString()+pictureFile_name.substring(pictureFile_name.lastIndexOf("."));

      

       //上传图片

       File uploadPic = new java.io.File("F:/develop/upload/temp/"+newFileName);

      

       if(!uploadPic.exists()){

           uploadPic.mkdirs();

       }

       //向磁盘写文件

       pictureFile.transferTo(uploadPic);

 

.....

 

 

u  页面:

 

form添加enctype="multipart/form-data":

<form id="itemForm"

       action="${pageContext.request.contextPath}/item/editItemSubmit.action"

       method="post" enctype="multipart/form-data">

       <input type="hidden"name="pic" value="${item.pic }"/>

 

 

file的name与controller形参一致:

           <tr>

              <td>商品图片</td>

              <td><c:if test="${item.pic !=null}">

                     <img src="/pic/${item.pic}"width=100 height=100 />

                     <br />

                  </c:if> <input type="file"name="pictureFile" /></td>

           </tr>


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值