上传附件到Couchdb python

2024-10-02 00:22:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试使用python&flask并使用一个名为couchdb的插件(https://pythonhosted.org/CouchDB/getting-started.html)将附件/png图像上载到couchdb上已经存在的文档中

我可以得到附件上传,但附件只显示为一个小的空白图像。在

@app.route('/process', methods=['POST'])
def process():
if request.method == 'POST':

    memeName = request.form['memeName']
    memeBaseName = request.form['memeBaseName']
    file = request.form['data']

    if file:
        print("file: ", file)
        memeName += ".png"
        print("memeName: ", memeName)
        print("memeBaseName: ", memeBaseName)

    doc = db.get('andrew')
    print("doc =", doc)
db.put_attachment(doc, file, memeName, content_type="image/png")

以下是我得到的错误: enter image description here


Tags: 图像formdb附件docifpngrequest
1条回答
网友
1楼 · 发布于 2024-10-02 00:22:59

我不确定这里有没有足够的食物,但我要吃一顿。前面有几个问题,以防我的直觉不正确。在

  • 传递什么数据请求.窗体[“数据”]? (仅供参考,您应该避免在Python中使用'file'作为变量名,因为它是内置的,可能会导致一些不希望的行为)

  • 文档中是否添加了附件?(您可以在futon查看您的医生,并看到它有一个附件,如果有,大小是多少)

  • 如果附件正在保存,您如何尝试在之后显示它而导致空白方块?在

我假设您正在发布图像数据,但无法将其保存为附件。从Python couchdb模块的文档中

put_attachment(doc, content, filename, content_type)

期望特定类型的内容:

内容–要上载的内容,可以是类似文件的对象或字符串

我假设form['data']不是一个类似文件的对象,因为它是在表单中传递的。如果是一个.png作为文本传递,那么在将其放入couch之前,您可能应该将其编码为base64。假设帖子工作正常,你可以把你的图片保存到沙发上,你应该会在蒲团里看到一个大小合适的附件。然后可以从base64呈现图像,如this question所示。如果附件的大小不是你所期望的大小,那么检查一下,确保你确实在发布你认为自己是什么样的人。在

如果您计划让futon渲染图像,您可能需要给它一个更具体的内容类型,因为您传递的不是普通的png而是png的base64编码。将内容类型更改为

data:image/png;base64

可能会解决这个问题。在

相关问题 更多 >

    热门问题