spring-webmvc文件上传

1、pom.xml

   
     
      org.springframework  
      spring-context 
      
     
      org.springframework  
      spring-webmvc 
      
     
      jakarta.platform  
      jakarta.jakartaee-web-api 
      
     
      com.fasterxml.jackson.core  
      jackson-databind 
      
     
      org.projectlombok  
      lombok 
      
     
      org.hibernate.validator  
      hibernate-validator 
      
     
      org.hibernate.validator  
      hibernate-validator-annotation-processor 
    

    
      commons-fileupload
      commons-fileupload
    

  

2、web.xml




	
		DispatcherServlet
		org.springframework.web.servlet.DispatcherServlet
		
			contextConfigLocation
			classpath:springmvc.xml
		
		1

		
			
			10485760
			
			20971520
			
			5242880
		

	

	
		DispatcherServlet
		/
	

	
		uploadDir
		E:/springmvc_upload
	

3、springmvc.xml




    
    
    
        
            
                
                    
                        text/plain;charset=utf-8
                        text/html;charset=utf-8
                    
                
            
        
    

    
    
    
    

4、index.html




    
    Title


昵称:
头像:

5、UploadController.java

package com.atguigu.controller;
import jakarta.servlet.ServletContext;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestPart;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.io.IOException;
import java.util.UUID;
@RestController
@RequestMapping("/upload")
public class UploadController {

    @Autowired
    private ServletContext servletContext;

    @PostMapping
    public String upload(String nickName, @RequestPart("headPicture") MultipartFile headPicture) throws IOException {
        String uploadDirPath = servletContext.getInitParameter("uploadDir");
        File uploadDirFile = new File(uploadDirPath);
        if (!uploadDirFile.exists() || !uploadDirFile.isDirectory()) {
            uploadDirFile.mkdirs();
        }
        headPicture.transferTo(new File(uploadDirPath+"/"+ UUID.randomUUID().toString() +"_"+headPicture.getOriginalFilename()));
        return "succ";
    }
}

spring-webmvc文件上传_第1张图片

6、UUID

UUID 是通用唯一标识符(Universally Unique Identifier)的缩写,它是一种标识符,被设计为在任何情况下都可以唯一地标识一个实体。UUID 是一种 128 位的数字,通常由特定的算法根据网络主机、时间戳、随机数、计数器等因素生成。由于 UUID 的设计初衷是唯一性,因此 UUID 在全球范围内都是唯一的。

UUID的作用是用来唯一标识某个信息或对象。它们可以被用于许多不同的场合,例如:

  1. 数据库中的主键:在数据库中使用UUID可以确保没有两个记录具有相同的主键,从而防止数据冲突和重复。

  2. 识别设备:UUID可以用来识别设备或计算机,确保每台设备都有唯一的标识符。

  3. 软件开发:在软件开发中,UUID可以用来标识不同的组件、插件或模块,从而有助于管理和维护代码库。

  4. 分布式系统:在分布式系统中,UUID可以用来标识不同的节点或进程,从而协调和管理系统中的各种活动。

总之,UUID是确保系统中不同信息或对象具有唯一标识符的一种有效方式,可以帮助避免数据冲突和重复,并提高系统的可靠性和稳定性。

你可能感兴趣的:(#,Spring,Web,MVC,springwebmvc,multipartconfig,MultipartFile,transferTo,UUID,File,艾特符号RequestPart)