ASP.NET MVC图片大小校验:字节数组长度应对比1048576还是1000000?
图片大小校验:选1048576还是1000000?
这个问题得先搞清楚两个数字背后的单位差异,我来给你掰扯明白:
先明确两个数值的本质:
1048576是 1 MiB(二进制兆字节),也就是2的20次方字节,这是计算机系统中衡量文件实际字节大小的标准单位——你拿到的图片字节数组的长度,对应的就是这个二进制计算逻辑。1000000是 1 MB(十进制兆字节),也就是10的6次方字节,这个更多是厂商宣传存储设备时用的(比如硬盘、U盘标注的容量),但不是程序里计算文件实际大小的常用方式。
结合你的场景选哪个:
你是直接对比图片的字节数组长度,那肯定要用1048576来做校验。原因很简单:当你把图片读取成字节数组时,数组的长度就是文件实际占用的二进制字节数,和MiB的计算逻辑完全匹配。如果用1000000的话,相当于把限制放宽了一点(因为1MiB≈1.05MB),不符合你“1MB以内”的实际技术需求。补充个小细节:
你已经定义了Constants.PictureMaximumSize = 1048576,这个设定是完全正确的,直接用它和字节数组长度对比就可以了。比如代码里可以这么写:if (imageByteArray.Length > Constants.PictureMaximumSize) { // 图片超过1MiB,提示用户处理 }
内容的提问来源于stack exchange,提问作者CSharpLearner
相关产品推荐
相关产品推荐

