CherryPy发布静态文件的方法
2008-09-30 13:10:01 来源:WEB开发网可以使用两种方式发布CherryPy中的静态文件,比如发布图片或者其他不需要修改(by gashero)的静态文件。
·发布一个目录,如/images。需要修改CherryPy的配置,可以加入如下的一条来发布。
'/images':{
按照这种发布时,发布的文件名可以随意修改,客户端所见到的文件名并非真正的文件名。
'static_filter.on':True,
'static_filter.dir':'/images'
}, #by gashero
如果是需要发布仅仅一个文件,则如下方法:
'/vrml.wrl':{
'static_filter.on':True,
'static_filter.file':'new.wrl'
}
·按照返回文件句柄的方式。有些文件按照如上的方式在客户端是无法正确的识别文件类型的,比如上例发布的VRML源文件。所以偶尔需要这种底层一点,但是功能强大的方式-返回文件句柄。
返回文件句柄一般是使用default方法,从第一个参数获得客户端请求的文件名,然后判断此文件名是否允许响应,再根据对应文件名打开文件句柄并通过return返回此句柄。
但是注意的是,客户端浏览器(by gashero)并不是使用扩展名来识别文件类型的,而是通过HTTP头字段的'Content-Type'的MIME类型来识别的。所以对于一些怪异的文件类型,需要自己指定MIME类型才可以正确的显示。
如下的完整例子是用于返回一个VRML源文件的,并且客户端可以正确的显示。default方法多加的**o参数用于屏蔽多余的参数。此处只做了一个文件的返回,可以根据需要多加几个elif。
@cherrypy.expose #by gashero
def default(self,filename,**o):
if filename=='vrml.wrl':
cherrypy.response.headerMap['Content-Type']='application/x-vrml'
f=open('new.wrl','rb')
return f
散会
- ››发布即破解 苹果iOS4.2正式版越狱教程
- ››发布的文章显示红色日期或加上new字或new小图片
- ››发布多个Web站点完全攻略:ISA2006系列之十
- ››发布Web服务器上的虚拟主机:ISA2006系列之十一
- ››发布安全Web站点详细攻略:ISA2006系列之十四
- ››发布终极列表时,如果不设置分页,列表最后少了一...
- ››发布悬赏贴
- ››发布Exchange OWA方法及故障分析:ISA2006系列之十...
- ››发布Exchange的SMTP,POP3服务器:ISA2006系列之十...
- ››发布Exchange的RPC以及RPC Over HTTPS:ISA2006系...
- ››发布网站的时候,遇到 未能加载文件或程序集 Micr...
- ››CherryPy发布静态文件的方法
更多精彩
赞助商链接