在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
方法接收一个名为file
的MultipartFile
参数,并使用getSize()
方法获取文件大小。然后,它使用了一个辅助方法humanReadableByteCount
来将字节转换为更人类可读的格式(如KB、MB、GB)。这个方法可以根据需要调整格式和精度。