我想直接从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
我做错了什么?
答案 0 :(得分:1)
fs = gridfs.GridFS(db)
是违规行。 GridFS构造函数接受Database的实例,而不是连接对象。所以你必须做类似的事情:
conn = Connection()
db = conn['mydb']
fs = gridfs.GridFS(db)
希望这有帮助!
答案 1 :(得分:0)
如果我们能从您的脚本中看到一些原始输出,那将会有所帮助。
要检查的一件事是响应标头已正确终止。 print语句在输出的末尾添加换行符,这意味着您可以从content-type标题字符串中删除第二个'\ n'。