python - 获取Django app中上传文件的文件大小
问题描述
我想在模板中显示用户上传的文件的大小。我已经看到文件对象具有属性大小,但是因为我是 Python 和开发领域的新手,所以我很难理解如何使用它。
经过一些测试,我开发了这个脚本(文件大小)添加到模型的末尾,您可以使用它上传文件:
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
现在简单地调用文件的大小。
我分享这个是因为我希望这对某人有用。我要问的是:有更好的解决方案吗?
解决方案
您可以使用此自定义模板标签来解决此问题:https ://djangosnippets.org/snippets/1866/
然后在您的模板中使用它:
{% load sizify %}
{{ yourFile.size|sizify }}
然后文件大小将以人类可读的格式(kb、Mb、Gb)显示
推荐阅读
- python - 如何访问 H2O for python 中的混淆矩阵元素?
- python - 傅里叶变换 傅里叶逆变换 python
- security - 使用自签名证书连接到后端的安全前端
- google-apps-script - Google 电子表格脚本(if 和复选框)
- pine-script - 松树脚本 4:变量 'buySignal' 被声明为 'series[integer]' 类型。无法为其分配“系列 [bool]”类型的表达式
- c# - DataGridComboBoxColumn 根据另一个 DataGridComboBoxColumn 的选定项设置 ItemSource
- phpmyadmin - 如何为数据库中的字段添加值
- java - 使用 GlassFish 5 在 JNDI 中存储 Singleton Bean
- bit - 经典计算机在单个时间点可以考虑多少个状态?
- paypal-subscriptions - 如何在设定的时间间隔后使用 PayPal 订阅收取不同的金额?