cherrypy.tutorial.tut09_files模块

教程:文件上传和下载

上载

当客户机将一个文件上传到Cherrypy应用程序时,它会立即放在磁盘上。Cherrypy将把它作为一个参数传递给您的公开方法(参见下面的“myfile”);这个arg将有一个“file”属性,它是临时上传文件的句柄。如果希望永久保存该文件,则需要从myfile.file读取()并在其他地方写入()。

请注意,在客户端用于上载文件的HTML中使用了“enctype=”multipart/form data“'和”input type=“file”'。

下载

如果您希望向客户机发送一个文件,您有两个选项:首先,您可以从页面处理程序简单地返回一个类似文件的对象。Cherrypy将读取该文件并将其作为响应的内容(HTTP主体)。但是,这并不能告诉客户机响应是要保存的文件,而不是要显示的文件。使用cherrypy.lib.static.serve_文件;它有四个参数:

服务文件(路径,内容类型=无,部署=无,名称=无)

将“name”设置为客户机保存文件时要使用的文件名。请注意,如果不提供“部署”(通常为“附件”),则忽略“名称”参数。您可以手动设置“内容类型”,但请注意,如果您还使用编码工具,如果文件扩展名未被识别为属于已知的内容类型,则可能会阻塞它。在大多数情况下,将内容类型设置为“application/x-download”是可行的,并且应该在常用浏览器中向用户提示打开/保存对话框。

class cherrypy.tutorial.tut09_files.FileDemo[源代码]

基类:object

download()[源代码]
index()[源代码]
upload(myFile)[源代码]