Web2py类型错误检索图像

时间:2013-04-29 02:52:33

标签: web2py

通常,Web2py错误很容易理解,但这让我很难过。

我使用了web2py cookbook中的一个例子来制作上传图片的缩略图。它生成缩略图,但我无法检索文件。我收到以下错误:

<type 'exceptions.TypeError'>(Can't retrieve auth_user.thumb.a7433c1cbe652f44.jpg)

该文件位于uploads目录中,可以使用图像查看器查看,但我无法从数据库中调用它。来自数据库管理员或通过视图。

当我点击数据库管理员的链接时,这是Traceback。

Traceback (most recent call last):
  File "/home/www-data/web2py/gluon/restricted.py", line 212, in restricted
    exec ccode in environment
  File "/home/www-data/web2py/applications/Urban_Gatherer/controllers/appadmin.py", line 464, in <module>
  File "/home/www-data/web2py/gluon/globals.py", line 194, in <lambda>
    self._caller = lambda f: f()
  File "/home/www-data/web2py/applications/Urban_Gatherer/controllers/appadmin.py", line 140, in download
    return response.download(request, db)
  File "/home/www-data/web2py/gluon/globals.py", line 407, in download
    (filename, stream) = field.retrieve(name,nameonly=True)
  File "/home/www-data/web2py/gluon/dal.py", line 9332, in retrieve
    raise TypeError('Can\'t retrieve %s' % name)
TypeError: Can't retrieve auth_user.thumb.a7433c1cbe652f44.jpg

我不确定这是错的。

这是我的控制器

def make_thumb(table, image_id, size=(250, 250)):
  import os
  from PIL import Image
  this_image = table(image_id)
  im = Image.open(os.path.join(request.folder, 'uploads', this_image.avatar))
  im.thumbnail(size, Image.ANTIALIAS)
  thumb= 'auth_user.thumb.%s.jpg' % this_image.avatar.split('.')[2]
  im.save(os.path.join(request.folder, 'uploads', thumb), 'jpeg')
  this_image.update_record(thumb=thumb

我以为我在片中失去了一些东西,但我改为3,我似乎仍然想念b16部分。不确定为什么?

1 个答案:

答案 0 :(得分:1)

auth_user.thumb.a7433c1cbe652f44.jpg不是上传文件的正确格式。它缺少b16encode的原始文件名,它应该在文件扩展名之前。它看起来应该是这样的:auth_user.thumb.a7433c1cbe652f44.6d79207468756d626e61696c.jpg

如果this是您正在使用的食谱,请尝试更改:

thumbnail = 'document.thumbnail.%s.jpg' % this_image.filename.split('.')[2]

为:

thumbnail = 'document.thumbnail.%s.%s.jpg' % tuple(this_image.filename.split('.')[2:4])