在Django app中获取上载文件的文件大小

2024-05-28 21:08:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我想显示在模板的大小,一个文件,用户已经上传。我已经看到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

现在调用文件的大小很简单。在

enter image description here

我分享这个是因为我希望这对某人有用。我要问的是:有更好的解决办法吗?在


Tags: 文件nameself脚本returnvaluemodelsdef
2条回答

您可以使用python的os模块来获得上传文件的大小,比如os.path.getsize('Your file path')

您可以使用以下自定义模板标记来解决此问题:https://djangosnippets.org/snippets/1866/

然后像这样在模板中使用它:

{% load sizify  %}

{{ yourFile.size|sizify }}

文件大小将以人类可读的格式显示(kb、Mb、Gb)

相关问题 更多 >

    热门问题