gpt4 book ai didi

python - 如何获取上传文件的文件大小和 SHA-1 摘要?

转载 作者:太空狗 更新时间:2023-10-30 02:49:18 25 4
gpt4 key购买 nike

我的 Django 应用程序中有这个模型:

class Image(models.Model):
image_file = models.ImageField(
upload_to='images/',
width_field='width',
height_field='height'
)
width = models.PositiveIntegerField(
blank = True, null = True,
editable = False
)
height = models.PositiveIntegerField(
blank = True, null = True,
editable = False
)

sha1 = models.CharField(max_length=32, blank=True, editable=False)
filesize = models.PositiveIntegerField(blank=True, null=True, editable=False)

我现在可以通过 Django 管理站点上传图像。由于特殊的 ImageField 参数,widthheight 属性在上传时会自动保存在数据库中。

但我也希望它能自动计算出上传文件的大小SHA-1 摘要,并保存这些属性。我该怎么做?

最佳答案

已经有一段时间了,但像这样的东西应该可以工作:

import hashlib
class Image(models.Model):
#...
def save(self, *args, **kwargs):
super(Image, self).save(*args, **kwargs)
f = self.image_file.open('rb')
hash = hashlib.sha1()
if f.multiple_chunks():
for chunk in f.chunks():
hash.update(chunk)
else:
hash.update(f.read())
f.close()
self.sha1 = hash.hexdigest()
self.filesize = self.image_file.size

编辑: 添加了 Dan 关于按 block 阅读的建议。默认 block 大小为 64KB。

关于python - 如何获取上传文件的文件大小和 SHA-1 摘要?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8958159/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com