获取Django app中上传文件的文件大小
Posted
技术标签:
【中文标题】获取Django app中上传文件的文件大小【英文标题】:Get the file size of the uploaded file in Django app 【发布时间】:2019-11-04 00:46:55 【问题描述】:我想在模板中显示用户上传的文件的大小。我已经看到 file object 具有属性大小,但是因为我是 Python 和开发领域的新手,所以我很难理解如何使用它。
经过一些测试,我开发了这个脚本(filesize)添加到模型的末尾,您可以使用它上传文件:
class FileUpload(models.Model):
name = models.CharField(
max_length=50,
)
description = models.TextField(
max_length=200,
blank=True,
)
file = models.FileField(
upload_to='blog/%Y/%m/%d'
)
def __str__(self):
return self.name
@property
def filesize(self):
x = self.file.size
y = 512000
if x < y:
value = round(x/1000, 2)
ext = ' kb'
elif x < y*1000:
value = round(x/1000000, 2)
ext = ' Mb'
else:
value = round(x/1000000000, 2)
ext = ' Gb'
return str(value)+ext
现在调用文件的大小很简单。
我分享这个是因为我希望这对某人有用。我要问的是:有更好的解决方案吗?
【问题讨论】:
【参考方案1】:您可以通过使用此自定义模板标签来解决此问题:https://djangosnippets.org/snippets/1866/
然后像这样在你的模板中使用它:
% load sizify %
yourFile.size|sizify
然后文件大小将以人类可读的格式(kb、Mb、Gb)显示
【讨论】:
【参考方案2】:可以使用python的os模块获取上传文件的大小如os.path.getsize('Your file path')
【讨论】:
可以根据kb, Mb, Gb来显示大小吗?以上是关于获取Django app中上传文件的文件大小的主要内容,如果未能解决你的问题,请参考以下文章
SpringBoot当文件上传大小限制超过获取MultipartException而不是MaxUploadSizeExceededException
Django-storage - 如何在上传前检查文件大小?