从zope返回docx文件 - 破坏文件

时间:2014-01-23 13:14:45

标签: python download zope

我正在使用Zope版本2.8.5和python 2.3.5(我知道它太老了,但这是一个遗留项目,并且没有在不久的将来迁移的计划)

我的代码目前看起来如下:

def readFiles (file_location):
    self.REQUEST.RESPONSE.setHeader('Content-type','application/octet-stream')
    self.REQUEST.RESPONSE.setHeader('Content-Disposition', 'Content-Disposition: attachment; filename="'+file_name+'"')
    return open(file_location).read()

以上是一个外部方法,由python脚本调用,如下 -

return context.readFiles(file_location)

所有这一切都适用于文本文件,甚至.doc扩展名文件。但是当我尝试使用上面的代码下载.docx文件时,文件下载得很好但是没有打开。

我收到错误,指出该文件已损坏且无法打开。

有人可以建议如何解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

不要担心。发现了问题。 我不得不用'rb'模式打开文件

f= open(file_location, 'rb')
r= f.read()
f.close()
return r