作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个允许上传图像的 HTML 表单。我想将原始图像保存到S3存储,然后将其转换为缩略图并将缩略图保存到同一存储。
我只能保存原始图像,但使用 PIL 将其转换为缩略图后,当我尝试保存它时,出现“服务器错误 500”
我的观点代码如下,
from django.core.files.storage import default_storage as storage
class upload(View):
def post(self, request):
image = request.FILES['pic']
storage.save(image.name, image)
thisfile = storage.open(image.name)
newimg = Image.open(thisfile)
thumb = newimg.resize((128,128), Image.ANTIALIAS)
storage.save("newimagename", newimg)
#Trying to save it this way doesn't work either
#thisobj = userProfile.objects.get(user= request.user)
#thisobj.image = newimg
#thisobj.save()
我尝试了一些打印语句以确保它转换文件没有问题,但它把它保存到内存中并且打印如下,
<PIL.JpegImagePlugin.JpegImageFile image mode=RGB size=600x600 at 0x105C1DEF0>
我尝试覆盖 models.py 中的 save 方法,但出现相同的错误
def save(self, *args, **kwargs):
super(userProfile, self).save(*args, **kwargs)
if self.image:
self.image.name = "y.JPG"
image = Image.open(self.image.path)
image = image.resize((128,128), Image.ANTIALIAS)
image.save(self.image.path)
最佳答案
试试这个:
def save(self, *args, **kwargs):
super().save(*args, **kwargs)
img = Image.open(self.image.path)
if img.height > 128 or img.width > 128:
output_size = (128, 128)
img.thumbnail(output_size)
img.save(self.image.path)
关于python - 在 Django views.py 中转换缩略图后如何将缩略图保存到 default_storage(AWS S3)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54856479/
我有一个具有可变数量子元素的固定大小的 div。我不知道 children 的大小。目标是缩小它们以适合父级。 例子: .parent { width: 100px; height: 100p
我是一名优秀的程序员,十分优秀!