spring mvc上传图片

1、需要commons-fileupload.jar

commons-io.jar

2、需要在springmvc.xml中 配置存放静态资源的路径,对图片等静态资源放行

     <mvc:resources location="/static/" mapping="/static/**"/>

3、图片上传页面

 <form action="/springmvc1/upload" method="post" enctype="multipart/form-data">
        <input type="text" name="title"/><br>
        <input type="file" name="file"/><br>
        <input type="submit">
    </form>
    <img alt="图片" src=${imgpath }>

4、后台页面

@RequestMapping(method=RequestMethod.GET)
    public String upload(){
        return "fileupload";
    }
    
    @RequestMapping(method=RequestMethod.POST,produces="text/html;charset=UTF-8")
    public String uploadPost(String title, MultipartFile file, HttpServletRequest request, RedirectAttributes redirectAttributes){
        
        String realPath=null;
        
        String filename = UUID.randomUUID().toString()+"."+file.getOriginalFilename().split("\\.")[1];
        try {
            
            realPath = request.getSession().getServletContext().getRealPath("/static/upload/");
            file.transferTo(new File( realPath + File.separatorChar + filename));
        } catch (IllegalStateException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        redirectAttributes.addFlashAttribute("imgpath", "/springmvc1/static/upload/" + filename);
        return "redirect:/upload";
    }

通过url请求时:

spring mvc上传图片_第1张图片

上传成功后

spring mvc上传图片_第2张图片

可以再xml配置上传文件大小的限制:

     <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
         <property name="maxUploadSize" value="100000"></property>
     </bean>

上传过大的就会报出异常。

你可能感兴趣的:(spring,mvc)