在Java中,如果你使用Spring框架来处理文件上传,MultipartFile接口是一个常见的选择。MultipartFile接口提供了很多有用的方法来处理上传的文件,包括获取文件大小。

你可以使用getSize()方法来获取MultipartFile对象表示的文件的大小,它返回的是字节数(long类型)。以下是如何使用它的示例:

java复制代码
 import org.springframework.web.bind.annotation.PostMapping;  
 
 import org.springframework.web.bind.annotation.RequestParam;  
 
 import org.springframework.web.bind.annotation.RestController;  
 
 import org.springframework.web.multipart.MultipartFile;  
 
   
 
 @RestController  
 
 public class FileUploadController {  
 
   
 
     @PostMapping("/upload")  
 
     public String handleFileUpload(@RequestParam("file") MultipartFile file) {  
 
         if (file.isEmpty()) {  
 
             return "文件为空";  
 
         }  
 
   
 
         // 获取文件大小(字节)  
 
         long fileSize = file.getSize();  
 
   
 
         // 如果你想以更友好的方式显示文件大小(例如KB, MB, GB),可以这样做:  
 
         String fileSizeHumanReadable = humanReadableByteCount(fileSize, true);  
 
   
 
         // 处理文件...  
 
   
 
         return "文件上传成功,大小为:" + fileSizeHumanReadable;  
 
     }  
 
   
 
     // 一个辅助方法,将字节转换为人类可读的格式(例如KB, MB, GB)  
 
     public static String humanReadableByteCount(long bytes, boolean si) {  
 
         int unit = si ? 1000 : 1024;  
 
         if (bytes < unit) return bytes + " B";  
 
         int exp = (int) (Math.log(bytes) / Math.log(unit));  
 
         String pre = (si ? "kMGTPE" : "KMGTPE").charAt(exp-1) + (si ? "" : "i");  
 
         return String.format("%.1f %sB", bytes / Math.pow(unit, exp), pre);  
 
     }  
 
 }

在上面的代码中,handleFileUpload方法接收一个名为fileMultipartFile参数,并使用getSize()方法获取文件大小。然后,它使用了一个辅助方法humanReadableByteCount来将字节转换为更人类可读的格式(如KB、MB、GB)。这个方法可以根据需要调整格式和精度。