上传图片到磁盘

Posted txf0324

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了上传图片到磁盘相关的知识,希望对你有一定的参考价值。

1)在tomcat中配置虚拟图片服务器

      2)导入fileupload的jar包

      3)在springMvc.xml中配置上传组件

      4)在页面上编写上传域,更改form标签的类型

      5)在controller方法中可以使用MultiPartFile接口接收上传的图片

      6)将文件名保存到数据库,将图片保存到磁盘中

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下的图片。

 

也可以通过eclipse配置:

技术图片

1.2   jar包

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

技术图片

1.3   配置解析器

<!-- 文件上传 -->

    <bean id="multipartResolver"

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

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

       <property name="maxUploadSize">

           <value>5242880</value>

       </property>

    </bean>

1.4  图片上传

 controller:

//商品修改提交

    @RequestMapping("/editItemSubmit")

    public String editItemSubmit(Items items, MultipartFile pictureFile)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);

 

 

页面:

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>

 

以上是关于上传图片到磁盘的主要内容,如果未能解决你的问题,请参考以下文章

Typora上传图片设置

一个图片上传的servlet,传到本地磁盘,要传到服务器请修改

Winforms:如何使用 C# 将图片上传到 SQL Server 数据库

通过 Slack 交互按钮上传图片

ssh整合问题总结--在添加商品模块实现图片(文件)的上传

java 后台如何获取前台上传的几张图片