本站消息

站长简介/公众号


站长简介:高级工程师,爱好交友,无偿辅导python和前端,技术交流,面试指导,找工作指导,瞎聊都可加我微信i88811i哈,欢迎欢迎!也欢迎加入程序员交流群,专属程序员的圈子,加我微信拉你进群.欢迎关注我的微信公众号:程序员总部,程序员的家,探索程序员的人生之路!分享IT最新技术,关注行业最新动向,让你永不落伍。了解同行们的工资,生活工作中的酸甜苦辣,谋求程序员的最终出路!

  价值13000svip视频教程,python大神匠心打造,零基础python开发工程师视频教程全套,基础+进阶+项目实战,包含课件和源码

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

将调整大小的 Django 图像上传到谷歌云时出现 ValueError

发布于2022-05-07 22:25     阅读(1051)     评论(0)     点赞(27)     收藏(1)



我有这个模型,在将调整大小的图像上传到我的 django 项目的媒体文件时效果很好

class ItemImage(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    item = models.ForeignKey(Item, on_delete=models.CASCADE)
    image = models.ImageField(null=True, blank=True,upload_to='item_img/')
    created = models.DateTimeField(auto_now_add=True)
    def save(self):
        im = Image.open(self.image)
        im_name = uuid.uuid4()
        im = im.convert('RGB')
        output = BytesIO()
        # Resize/modify the image
        im = im.resize((700, 700))
        # after modifications, save it to the output
        im.save(output, format='JPEG', quality=90)
        output.seek(0)
        # change the imagefield value to be the newley modifed image value
        self.image = InMemoryUploadedFile(output, 'ImageField', "%s.jpg" % self.image.name, 'image/jpeg',
                                        sys.getsizeof(output), None)
        super(ItemImage, self).save()

    def __str__(self):
        return self.item.title

当我将文件存储更改为谷歌云时,我在上传图像时遇到了这个错误

    ValueError at /ar/dashboard/my_items/edit_item/add_item_image/2/
Size 120495 was specified but the file-like object only had 120373 bytes remaining.

请注意,当我删除添加的保存方法时,图像已成功上传,所以在处理 gcloud 时我需要在该保存方法中更改什么?


解决方案


我在 github 上发现了一个类似的问题,他将错误解释如下“我认为这是 GCS 拒绝的最终用户代码中的错误,其他服务更自由。调用 sys.getsizeof(fi_io) 产生的大小BytesIO 对象,而不是缓冲区的大小”

所以我改成sys.getsizeof(output)这样len(output.getbuffer()) ,它适用于谷歌云和本地媒体文件

站长简介:高级工程师,爱好交友,无偿辅导python和前端,技术交流,面试指导,找工作指导,瞎聊都可加我微信i88811i哈,欢迎欢迎!也欢迎加入程序员交流群,专属程序员的圈子,加我微信拉你进群
欢迎关注我的公众号:程序员总部,关注公众号回复python,免费领取 全套python视频教程,关注公众号回复充值+你的账号,免费为您充值1000积分







所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接:https://www.pythonheidong.com/blog/article/1488667/78bba9f7c79e90f83dc7/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

27 0
收藏该文
已收藏

评论内容:(最多支持255个字符)