0

我目前通过挂钩 Filefield 所在模型的保存方法来为图像上传生成缩略图,但是由于多种原因,这真的很糟糕。但它确实有效,不像我之前对自定义上传处理程序的实验......

这让我觉得这是创建和更新缩略图的合适时机,但我试图找出上传文件最终将保存在哪里(因此我可以将缩略图保存到基于该路径的路径)。我可以很容易地获得临时文件夹路径,但这没用,我需要知道上传最终将上传到哪个文件夹,这可以从这里开始吗?

class Thumbnailer(TemporaryFileUploadHandler):
    def file_complete(self, file_size):
        self.file.seek(0)
        if not self.content_type is None and 'image' in self.content_type:
            newfile = StringIO()
            img = Image.open( self.file )
            thumb_size = 400,300
            img.thumbnail( thumb_size, Image.ANTIALIAS )
            img.save( os.path.join("THIS PATH IS WHAT I NEED", "thumbs", self.file_name, 'JPEG', quality=80 )
    return super(Thumbnailer, self).file_complete(file_size)

ps:请不要通过推荐插件和混合插件来回答 - 我知道并忽略了所有这些,至少对于这个项目..

4

1 回答 1

1

文件上传处理程序不知道上传文件将存储在哪里,因此如果您真的必须坚持使用自定义上传处理程序,您将不得不对该路径进行硬编码。

否则,您可以:

  • 自定义视图以获取 tumbnal(在第一次请求时生成缩略图,就像 Sorl 所做的那样)
  • 将该路径存储在设置中
  • 自定义文件字段
于 2013-01-13T03:44:34.367 回答