【问题标题】:Get the file size of the uploaded file in Django app获取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

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

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

【问题讨论】:

    标签: python django django-file-upload django-2.2


    【解决方案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来显示大小吗?
      猜你喜欢
      • 2021-11-12
      • 1970-01-01
      • 2011-05-10
      • 2011-11-21
      • 2017-04-21
      • 1970-01-01
      相关资源
      最近更新 更多