zoukankan      html  css  js  c++  java
  • springmvc文件上传

    1.加入jar包:

    commons-fileupload-1.2.2.jar

    commons-io-2.0.1.jar

    lperson.java中加属性,实现get ,set方法

    private String photoPath;

    2.创建WebRoot/upload目录,存放上传的文件

    1 <sf:form id="p" action="saveOrUpdate" 
    2     method="post" 
    3     modelAttribute="person" 
    4     enctype="multipart/form-data">
    5 
    6     <sf:hidden path="id"/> 
    7     name: <sf:input path="name"/><br>
    8     age: <sf:input path="age"/><br>
    9     photo: <input type="file" name="photo"/><br>

    上面第9行文件上传框,不能和实体对象属性同名,类型不同

    controller配置

     1 12、文件上传功能实现 配置文件上传解析器
     2 @RequestMapping(value={"/saveOrUpdate"},method=RequestMethod.POST)
     3 public String saveOrUpdate(Person p,
     4         @RequestParam("photo") MultipartFile file,
     5         HttpServletRequest request
     6 ) throws IOException{
     7     if(!file.isEmpty()){
     8         ServletContext sc = request.getSession().getServletContext();
     9         String dir = sc.getRealPath(“/upload”);    //设定文件保存的目录
    10         
    11         String filename = file.getOriginalFilename();    //得到上传时的文件名
    12         FileUtils.writeByteArrayToFile(new File(dir,filename), file.getBytes());
    13         
    14         p.setPhotoPath(“/upload/”+filename);    //设置图片所在路径
    15         
    16         System.out.println("upload over. "+ filename);
    17     }    
    18     ps.saveOrUpdate(p);    
    19     return "redirect:/person/list.action";   //重定向
    20 }

    3.文件上传功能实现 spring-mvc.xml 配置文件上传解析器

    1     <!-- 文件上传解析器 id 必须为multipartResolver -->
    2     <bean id="multipartResolver" 
    3         class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
    4         <property name="maxUploadSize" value=“10485760"/>    
    5     </bean>
    6 
    7 maxUploadSize以字节为单位:10485760 =10M   id名称必须这样写
    1 映射资源目录
    2 <mvc:resources location="/upload/" mapping="/upload/**"/>

    随即文件名常用的三种方式:

    文件上传功能(增强:防止文件重名覆盖)

    fileName = UUID.randomUUID().toString() + extName;

    fileName = System.nanoTime() + extName;

    fileName = System.currentTimeMillis() + extName;

     1 if(!file.isEmpty()){
     2     ServletContext sc = request.getSession().getServletContext();
     3     String dir = sc.getRealPath("/upload");
     4     String filename = file.getOriginalFilename();
     5     
     6 
     7     long _lTime = System.nanoTime();
     8     String _ext = filename.substring(filename.lastIndexOf("."));
     9     filename = _lTime + _ext;
    10     
    11     FileUtils.writeByteArrayToFile(new File(dir,filename), file.getBytes());
    12     
    13     p.setPhotoPath("/upload/"+filename);
    14     
    15     System.out.println("upload over. "+ filename);
    16 }

    图片显示 personList.jsp

     1 <td><img src="${pageContext.request.contextPath}${p.photoPath}">${p.photoPath}</td> 

  • 相关阅读:
    模式识别 之 BP算法
    仪器开发 之 DICOM 三维重建 HPP
    模式识别 之 BP算法 (二)
    病理分析 之 细胞分析
    脉搏血氧仪 之 算法原理
    模式识别 之 初学
    机器学习 之 模糊神经(失败总结)
    冲刺第二天
    冲刺第三天
    团队项目计划
  • 原文地址:https://www.cnblogs.com/friends-wf/p/3801475.html
Copyright © 2011-2022 走看看