如何允许在CherryPy中下载动态创建的文件?

时间:2011-09-13 10:47:05

标签: python cherrypy

我正在尝试将CherryPy用于一个简单的网站,之前从未进行过Python网络编程。

我试图允许下载动态创建的文件。我可以创建一个文件并从处理程序返回它,或者在文件上调用serve_fileobj(),但在任何一种情况下,文件的内容都只是呈现在屏幕上,而不是下载。

CherryPy在这里提供任何有用的方法吗?如何实现这一目标?

3 个答案:

答案 0 :(得分:3)

如果您设置了正确的内容类型,则在退回时不必担心它会在浏览器中呈现,除非它是合适的。尝试:

response.headers['Content-Type'] = 'application/foo'

(或内容的正确MIME类型)返回内容之前。

答案 1 :(得分:2)

'Content-Disposition: attachment; filename="<file>"'标题添加到回复

答案 2 :(得分:1)

将@varela和@JasonFruit的先前答案放在一起:

dynamic_content = "this was generated on the fly!"
cherrypy.response.headers['Content-Disposition'] = 'attachment; filename="<file>"'
return dynamic_content