Add max image upload size limit
Signed-off-by: Alek Ratzloff <alekratz@gmail.com>
This commit is contained in:
@@ -3,6 +3,7 @@ from pathlib import Path
|
||||
from django.db import models
|
||||
from django.db.models import signals
|
||||
from django.conf import settings
|
||||
from django.core.exceptions import ValidationError
|
||||
from django.core.files.base import ContentFile
|
||||
from django.dispatch import receiver
|
||||
from django.urls import reverse
|
||||
@@ -22,10 +23,7 @@ def image_upload(instance, filename):
|
||||
if ext not in (".jpg", ".png", ".gif"):
|
||||
raise Exception("File type invalid")
|
||||
|
||||
if instance.op:
|
||||
return f"{instance.board.url}/{instance.op.id}/{now_sec}{ext}"
|
||||
else:
|
||||
return f"{instance.board.url}/{now_sec}{ext}"
|
||||
return f"{instance.board.url}/{now_sec}{ext}"
|
||||
|
||||
|
||||
def thumbs_upload(instance, filename):
|
||||
@@ -33,10 +31,7 @@ def thumbs_upload(instance, filename):
|
||||
now = timezone.now()
|
||||
now_sec = now.strftime("%s.%f")
|
||||
ext = Path(filename).suffix.lower()
|
||||
if instance.op:
|
||||
return f"{instance.board.url}/{instance.op.id}/{now_sec}{ext}"
|
||||
else:
|
||||
return f"{instance.board.url}/{now_sec}t{ext}"
|
||||
return f"{instance.board.url}/{now_sec}t{ext}"
|
||||
|
||||
|
||||
class Board(models.Model):
|
||||
@@ -91,7 +86,7 @@ class Post(models.Model):
|
||||
|
||||
def save(self, *args, **kwargs):
|
||||
if self.image:
|
||||
self.original_image_name = self.image.name
|
||||
self.original_image_name = Path(self.image.name).parts[-1]
|
||||
self.__make_thumbnail()
|
||||
super(Post, self).save(*args, **kwargs)
|
||||
|
||||
@@ -134,6 +129,13 @@ class Post(models.Model):
|
||||
+ f"#p{self.id}"
|
||||
)
|
||||
|
||||
def clean(self):
|
||||
if self.image and self.image.size > settings.MAX_UPLOAD_SIZE:
|
||||
raise ValidationError(
|
||||
"Image supplied is too large. Maximum image size is %(max)s",
|
||||
params={"max": settings.MAX_UPLOAD_SIZE},
|
||||
)
|
||||
|
||||
|
||||
@receiver(signals.post_save, sender=Post)
|
||||
def post_created(sender, instance, created, **kwargs):
|
||||
|
||||
Reference in New Issue
Block a user