以字节为单位的上传大小限制(django)

Upload size limit in bytes (django)

我正在测试 cleaned_data['content'].size > MAX_SIZE 表单以验证上传大小。

在谷歌搜索如何检查 Django 中上传的长度时,我遇到了几个地方(下面的链接)人们正在使用某种格式(似乎以某种方式基于 2 的幂)以字节为单位表示 MB。

我想一定有一个很好的理由。

为什么要用这样的格式?您如何计算以下值? (取自链接的 SO 问题)

# 2.5MB - 2621440
# 5MB - 5242880
# 10MB - 10485760
# 20MB - 20971520
# 50MB - 5242880
# 100MB 104857600
# 250MB - 214958080
# 500MB - 429916160

Django File upload size limit
https://djangosnippets.org/snippets/1303/
https://django-filebrowser.readthedocs.org/en/3.5.2/settings.html

仅仅因为一千字节是 1024 字节...对于字节,'round numbers' 是 2 的幂而不是 10

严格来说1024字节是一个"kibibyte",按照SI单位,一个"kilobyte"是1000字节,就像一公斤是1000克

然而 Windows 等操作系统倾向于使用前一种定义

例如,如果您想将上传大小限制为 2MB,您应该使用 2 * 2**20(或 2 x 1024**2

n MB 的一般形式为 n * 1024**2

http://en.wikipedia.org/wiki/Megabyte#Definitions