SpringMVC 上传功能

                          Spring框架上传jpg文件方法

首先需要准备一个选择图片上传的jsp页面:

<form action=”upload” method =”post”  enctype=”multipart/form-data”>/*这个声明是很重要的,表明这个表单支持多元数据,如果没有会导致失败。*/

<input type=”file” accept=”image/*” name =”image” />

<input type=”submit” value=”upload”>

</form>

以上是前端页面,接下来是spring的后端流程

首先在控制器的servletxml 上表明支持开放图片上传功能:

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver" />

 

再创建一个实体类,这个实体类保证spring框架通过javaBean来进行图像文件的对象转换和传输:

 


public class UplaodImageFile {

    MultipartFile image;

    public MultipartFile getImage() {
        return image;
    }

    public void setImage(MultipartFile image) {
        this.image = image;
    }

}

下一步在控制器类包中建立控制器,方法传输两个参数 一个是request对象,用来获取当前的项目的路径,以便获取存储图片的路径,另一个是刚刚创建的实体类UplaodImageFile对象。

方法流程:首先创建一个随机名称,保证图片名字不一样导致覆盖,再获取路径,创建后缀为.Jpg 的file对象 ,完成之后,用 file.getImage().transferTo(newFile) 这条执行语句来完成图片转换上传。

 

主要代码:public ModelAndView upload(HttpServletRequest request , UplaodImageFile file) throws  IOException,IllegalStateException{

       String name = RandomStringUtils.randomAlphanumeric(10);
        String fileName = name +".jpg";
        File newFile = new File(request.getServletContext().getRealPath("/image"),fileName);
        //System.out.println(newFile);
        newFile.getParentFile().mkdirs();
        System.out.println(newFile);
        file.getImage().transferTo(newFile);
        ModelAndView mav = new ModelAndView("showImage");
        mav.addObject("imageName",fileName);
        return  mav;
    }

}

 

 

 

 

原文地址:https://www.cnblogs.com/qq1005801715/p/11592693.html