Django easy-thumbnails 最大尺寸
有没有办法在我的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'),
)