MemoryStream,kb 中有多少字节?

MemoryStream, how many bytes in kb?

我正在使用 .net core 上传图像文件。该文件被转换为 MemoryStream,然后发送到将验证该文件的服务。目前我这样做是这样的:

MemoryStream stream = GetMemoryStream();
var fileSize = stream.length;

现在我要保证图片不大于512kb。我的问题是我不确定使用什么值来转换为字节,1024 还是 1000?从 MemoryStream 列出长度时应该使用十进制值还是二进制值?

哪种情况是正确的?

场景A

if(fileSize > 512000) return false;

场景 B

if(fileSize > 524288) return false;

编辑:

当我在桌面上查看图像的属性时,它显示为 512KB。电脑是用什么场景计算出那个尺寸的?

MemoryStream.Length returns 包含数据的字节长度。

因此,您的验证完全取决于您对 512 kb 的定义。因此,您的两种情况都有些真实;在第一个中,您假设 1 kb = 1000 bytes,在第二个中,您假设 1 kb = 1024 bytes。由您决定哪种更适合您的应用程序。

关于您的编辑,您计算机上用于千字节的值取决于您使用的OS。例如,在 Windows 上是 1024 bytes