Web2Py 将文件添加到数据库



我正在我的 Web2Py 代码中创建一个文件,如下所示:

tmpPckUpFile = open('FileContent.txt', 'w+')

我补充

tmpPckUpFile.write("some stuff")

我关闭了文件

tmpPckUpFile.close()

然后尝试更新数据库中的行

db(db.project_pickup_approvals.id==request.args(0)).update(PickupContent = tmpPckUpFile)

此时,我通常会收到一个错误: 对已关闭文件的 I/O 操作

所以我尝试做的是删除 close((,现在文件被添加到数据库中,但没有写入任何内容。我得到一个空白文件。

问:如何写入文件并将其放入数据库?

如果不想

在文件系统上保留原始的"FileContent.txt"临时文件,则可以将内容写入StringIO对象,这是一个类似文件的对象,不需要在文件系统上创建实际文件。

import cStringIO
tmpPckUpFile = cStringIO.StringIO()
tmpPckUpFile.write('some stuff')
tmpPckUpFile.seek(0)
upload_field = db.project_pickup_approvals.PickupContent
db(db.project_pickup_approvals.id == request.args(0)).update(
    PickupContent=upload_field.store(tmpPckUpFile, filename='myfile.txt'))
tmpPckUpFile.close()

如果将前两行替换为原始tmpPckUpFile = open('FileContent.txt', 'w+')行,则上面的代码也应该有效。

最新更新