springMVC上传文件到服务器,数据库中存储文件路径

来源:互联网 发布:判断域名是否支持ipv6 编辑:程序博客网 时间:2024/06/04 19:31

springMVC上传文件到服务器,数据库中存储文件路径

1.封装了文件上传执行过程,其中参数验证、异常处理等需要自己处理。

 /**    * springMVC 处理文件上传    * @param partFile 上传的文件     * @param rootPath 文件存放的目录 例如:/mnt/file/     * @return 传入的文件参数若为空,或者传入的文件名称为空时返回值为null,否则返回文件在数据库中存储的相对路径+文件名称    *         返回值(存储的相对路径+文件名称)=当前年月+随机数    *         文件存放的绝对路径+文件名称=rootPath+当前年月+随机数    *         例如:上传的文件类型为jpg rootPath:/mnt/file/ 当前年月为 :201611 生成随机数为:7a932fe2-61a1-4fd8-ad56-385b289c9cd3    *               返回值(存储的相对路径+文件名称)=201611/7a932fe2-61a1-4fd8-ad56-385b289c9cd3.jpg    *               文件存放的绝对路径+文件名称=/mnt/file/201611/7a932fe2-61a1-4fd8-ad56-385b289c9cd3.jpg    * @throws IOException     * @throws IllegalStateException     */   public String uploadFile(MultipartFile partFile,String rootPath) throws IllegalStateException, IOException {      if(partFile!=null&&partFile.getOriginalFilename()!=null&&partFile.getOriginalFilename().length()>0){   Calendar cal = Calendar.getInstance();   int month = cal.get(Calendar.MONTH) + 1;   int year = cal.get(Calendar.YEAR);   String filePath=rootPath+year+month+"/";   File dir=new File(filePath);if(!dir.isDirectory())dir.mkdir();      String fileOriginalName=partFile.getOriginalFilename();   String newFileName=UUID.randomUUID()+fileOriginalName.substring(fileOriginalName.lastIndexOf("."));   File file=new File(filePath+newFileName);   //文件写入磁盘   partFile.transferTo(file);   //返回存储的相对路径+文件名称   return ""+year+month+"/"+newFileName;   }   else   return null;   }

2.springMVC.xml中的配置

 <!-- 文件上传 --><bean id="multipartResolver"class="org.springframework.web.multipart.commons.CommonsMultipartResolver"><!-- 设置上传文件的最大尺寸为5MB --><property name="maxUploadSize"><value>5242880</value></property></bean>
<!-- 配置静态资源 -->       <mvc:resources location="file:/mnt/file/" mapping="/file/**"/>
如果出现错误,可能是没有配置 <mvc:annotation-driven /> 的原因。

3.界面实例

<tr><td>文件</td><td><c:if test="${file !=null}"><img src="${pageContext.request.contextPath }/file/${file}"width=100 height=100 /><br /></c:if> <inputtype ="file" name="partFile" /></td></tr>

0 0
原创粉丝点击