2

我想直接从 python 脚本提供来自 gridfs 的图像,但只有我看到的是空白屏幕:

#!/usr/bin/env python

from pymongo import Connection
import gridfs

db = Connection().gridfs_example
fs = gridfs.GridFS(db)

f= fs.get_last_version('myimage')

print "Content-type: %s \n\n " % f.content_type
print "Content-Length: %d \n\n" % f.length
print f.read()

如果我将 f.read() 的输出写入文件,我可以看到“有效”图像,我可以从本地 FS 显示该图像:

#!/usr/bin/env python

img = open('image.jpg','rb').read()
print "Content-type: image/jpeg"
print "Content-Length: %d\n" % len(img)
print img

我做错了什么?

4

2 回答 2

2
fs = gridfs.GridFS(db)

是违规行。GridFS 构造函数采用数据库实例,而不是连接对象。因此,您必须执行以下操作:

conn = Connection()
db = conn['mydb']
fs = gridfs.GridFS(db)

希望这可以帮助!

于 2013-11-14T23:28:41.270 回答
0

如果我们能从您的脚本中看到一些原始输出,那将会有所帮助。

要检查的一件事是响应标头已正确终止。print 语句将换行符添加到输出的末尾,这意味着您可以从内容类型标头字符串中删除第二个 '\n'。

于 2011-05-07T19:40:35.960 回答