Django easy-thumbnails 最大尺寸

1 投票
1 回答
1647 浏览
提问于 2025-04-16 21:56

有没有办法在我的Django应用中,使用easy-thumbnails这个插件来限制上传图片的最大大小呢?

在设置列表里我没有看到相关的选项。

1 个回答

-2

如果你想限制文件的大小,最好在网页服务器上处理,而不是在Django里。

另外,你可以指定一个自定义的文件处理器,这样当文件太大时就可以报错:

from django.core.files.uploadhandler import TemporaryFileUploadHandler, StopUpload

class SizeLimitUploadHandler(TemporaryFileUploadHandler):
    def new_file(self, field_name, file_name, content_type, content_length, charset):
        if content_length > MAX_FILE_SIZE:
            raise StopUpload(True)

不过,这样做会导致连接重置错误,以停止处理这个大文件。

如果你想限制图片的大小,可以在保存之前先调整图片的大小,具体方法在说明文档里有提到:

通过给ThumbnailerImageField传递一个resize_source参数,你可以在保存之前调整源图片的大小:

class Profile(models.Model):
    user = models.ForeignKey('auth.User')
    avatar = ThumbnailerImageField(
        upload_to='avatars',
        resize_source=dict(size=(50, 50), crop='smart'),
    )

撰写回答