2022-02-26 16:16

springboot+thymeleaf实现图片上传并

wanmatea

JavaEE

(2028)

(0)

收藏

一、首先,新建一个springboot项目,并勾选添加spring web和thymeleaf的依赖。

image.png 

二、在templates下新建一个页面upload.html

然后在页面中添加一个表单和一个文件上传控件、一个按钮用于提交表单。

一个img标签用于图片回显。

image.png

三、新建一个控制器 UploadController

并在控制器中添加两个upload方法,第一个upload用于访问upload.html页面,第二个upload方法用于页面提交表单后上传图片并返回到upload.html页面。

@GetMapping("/upload")
public String upload(){    
    return "upload";
}
@PostMapping("/upload")
public String upload(MultipartFile file, Model model) throws IOException {
    
//获取上传文件名字
  
String filename=file.getOriginalFilename();
    
//通过上传文件名字截图后缀名
    
String fileext=filename.substring(filename.indexOf("."));
    
//定义新的文件名字
    
String newFileName= UUID.randomUUID().toString()+fileext;
    
//获取上传图片路径
    
String path= ResourceUtils.getURL("classpath:").getPath()+"static/images/";
    
File uploadPath=new File(path+newFileName);
    
//如果上传目录不存在,创建目录
    
if(!uploadPath.exists()){
        
uploadPath.mkdirs();
    
}
    
//上传文件
    
file.transferTo(uploadPath);
    
//把图片路径放入model
    
model.addAttribute("filename","/images/"+newFileName);
    
return "upload";
}

四、在application.properties配置文件中添加上传文件大小的控制

#单个文件上传的最大值
spring.servlet.multipart.max-file-size=5MB
#上传文件总的最大值
spring.servlet.multipart.max-request-size=10MB

五、运行项目

运行项目并访问localhoust:8080/upload

image.png 

然后选择一个图片,点击上传

图片就会上传成功并回显。

image.png 

 

源码结构如下:

image.png

0条评论

点击登录参与评论