如何从中找到正确的文件大小org.\xe2\x80\x8bspringframework.\xe2\x80\x8bweb.\xe2\x80\x8bmultipart.\xe2\x80\x8bMultipartFile
double bytes = m.getSize();\ndouble kilobytes = (bytes / 1024);\ndouble megabytes = (kilobytes / 1024); \n System.out.println(megabytes);\nRun Code Online (Sandbox Code Playgroud)\n\n但它没有给出正确的尺寸。
\n\n这里m.getSize()返回 2264855 但使用此方法它给出的文件大小约为 2MB,但我的文件系统中的实际大小是 8MB
private HashMap add(@RequestParam( value = "files", required = false) MultipartFile[] mPartFile){\n\n if(mPartFile != null && mPartFile.length>0){\n for(MultipartFile m:mPartFile){\n if(!CoreServices.isSupportedFile(m.getContentType())){\n hm.put("status", MConstants.OPERATION_FAILED);\n hm.put("reason", "File: "+m.getOriginalFilename()+" is not supported. Upload only jpeg, png, gif image files.");\n return hm; \n }\n long size = m.getSize();\n if( size> MConstants.MAX_ALLOWED_FILE_SIZE){\n hm.put("status", MConstants.OPERATION_FAILED);\n hm.put("reason", "File: "+m.getName()+" is not acceptable, its size is more than 5MB.");\n return hm; \n } \n }\n }\n}\nRun Code Online (Sandbox Code Playgroud)\n\n这里的值MAX_ALLOWED_FILE_SIZE是50000005MB限制
小智 5
您正在使用getSize()MultipartFile 方法,我认为该方法以二进制形式返回字节大小。
因此,将其转换为 MB 单位,您必须file.getSize()乘以0.00000095367432。这将为您提供以 MB 为单位的大小。您可以在这里验证。
我正在使用相同的。我可以看到 Windows 中文件的大小为 18.9 KB,这是实际大小而不是磁盘上的大小。就我而言,我需要以 KB 为单位的信息,因此我将其乘以 0.0009765625,结果返回 18.9462890625 KB,这接近文件的大小,可能是 Windows 将其四舍五入。
我相信乘以file.getSize()会0.00000095367432起作用。
| 归档时间: |
|
| 查看次数: |
14994 次 |
| 最近记录: |