2006年06月30日 星期五 15:40
使用CherryPy做应用服务器的时候,刚刚开始用HTML做页面倒是没什么,可是后来需要图片了,却不知如何从CherryPy上返回图片。 CherryPy自带的例子里面的cptools.serveFile试过,但是失败了,调用的方法也不甚了解。 多谢!
2006年06月30日 星期五 15:50
不知道你说的是不是这个 http://www.cherrypy.org/trunk/docs/book/chunk/ch03.html#id3008306 在06-6-30,gashero <harry.python at gmail.com> 写道: > > 使用CherryPy做应用服务器的时候,刚刚开始用HTML做页面倒是没什么,可是后来需要图片了,却不知如何从CherryPy上返回图片。 > CherryPy自带的例子里面的cptools.serveFile试过,但是失败了,调用的方法也不甚了解。 > 多谢! > > _______________________________________________ > python-chinese > Post: send python-chinese at lists.python.cn > Subscribe: send subscribe to python-chinese-request at lists.python.cn > Unsubscribe: send unsubscribe to python-chinese-request at lists.python.cn > Detail Info: http://python.cn/mailman/listinfo/python-chinese > > -- 因为你,我才在这沙漠中独步而行… http://rocker.hbgfs.org -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20060630/0bd2b57c/attachment.htm
2006年06月30日 星期五 16:48
看了一头雾水,而且没有试验成功。还在考虑,limodou兄写过一篇关于CherryPy发布静态文件的帖子,可是其中提到的很多包的名称,现在都已经不存在了,恐怕是N年以前的了。
2006年06月30日 星期五 17:50
在06-6-30,肯定来过 <rocker.yuan at gmail.com> 写道: > 不知道你说的是不是这个 > > http://www.cherrypy.org/trunk/docs/book/chunk/ch03.html#id3008306 > 这个是使用CP返回静态目录/文件的方法 > 在06-6-30, gashero <harry.python at gmail.com> 写道: > > > > 使用CherryPy做应用服务器的时候,刚刚开始用HTML做页面倒是没什么,可是后来需要图片了,却不知如何从CherryPy上返回图片。 > CherryPy自带的例子里面的cptools.serveFile试过,但是失败了,调用的方法也不甚了解。 > 多谢! > 不晓得你说的图片是什么,如果是图像文件,那么设置文件中的 [/style.css] #当访问 http://hostname/style.css 就会返回style.css文件中的内容 # style.css 应该和cp脚本在同一目录 static_filter.on = True static_filter.file = "style.css" [/static] # 访问 http://hostname/static 定位到 /home/myweb 目录 static_filter.on = True static_filter.dir = "/home/myweb" 如果是验证码之类,那么邮件中好象有个联通的mail使用的cgi脚本, pil的,应该可以参考下 -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20060630/cd5d067e/attachment.html
2006年06月30日 星期五 23:23
楼上的是Python吧的吧主,谢谢你。 如上的实验方法我开始测试了一次,失败了就懒得再试,倒是在CherryPy的Tutorial中的09 files.py中找到了好办法。 就是说一个暴露方法可以返回一个文件句柄,而CherryPy会自动读取句柄的文件内容并按照适当的格式返回。我实验成功后做了笔记,笔记如下: ・返回静态文件的方法 在处理器中返回文件的句柄即可 对于图片等等二进制文件,必须使用'rb'打开方式。 注意,在调试状态下,会因为CherryPy自动给每一个文件末尾加上调试信息,如文件大小和处理时间,所以小心文件的被修改。将服务器设置为发行状态即可。 处理静态文件比较合适的方法是使用default方法的参数。 小心CGI脚本攻击,注意检测输入参数中的'..'、'\'等等参数。但是,经测试表明,输入如上两个参数将会直接导致CherryPy的崩溃,而不是返回上一级文件。 可以考虑设置一个词典,键为发布文件名,值为磁盘文件名。来建立一个映射,这样可以很好的解决发布参数被攻击的问题,还可以有限制的发布。 如下是我当时的测试程序: # -*- coding: gbk -*- import cherrypy class ShowPic: def __init__(self): return @cherrypy.expose def index(self): return open('index.html','r').read() @cherrypy.expose def default(self,filename): print ':'*10+filename fhandle=open(filename,'rb') if fhandle==None: print ':'*10+"None file handle" else: print ':'*10+"Not None" return fhandle cherrypy.root=ShowPic() cherrypy.server.start() 大家共勉,谢谢。
Zeuux © 2025
京ICP备05028076号