web.py大文件下载
2011-08-05 14:10
225 查看
需要下载大文件的时候,如果先将文件直接读入内容再返回,那肯定就很浪费内存,甚至会崩溃。
所以我们需要读一些内容然后直接flush给客户端,但是web.py的文档里面却没有找到flush的方法。
不过在web.py的cookbook中的How to Stream Large Files中看到可以直接yield返回内容。所以,我们可以使用yield来做flush做的事情。
OK!
完鸟!
所以我们需要读一些内容然后直接flush给客户端,但是web.py的文档里面却没有找到flush的方法。
不过在web.py的cookbook中的How to Stream Large Files中看到可以直接yield返回内容。所以,我们可以使用yield来做flush做的事情。
BUF_SIZE = 262144 class download: def GET(self): file_name = 'file_name' file_path = os.path.join('file_path', file_name) f = None try: f = open(file_path, "rb") webpy.header('Content-Type','application/octet-stream') webpy.header('Content-disposition', 'attachment; filename=%s.dat' % file_name) while True: c = f.read(BUF_SIZE) if c: yield c else: break except Exception, e: print e yield 'Error' finally: if f: f.close()
OK!
完鸟!
相关文章推荐
- java-web文件上传下载
- JavaWeb中上传和下载文件实例代码
- 利用webservice和.net技术上传和下载文件--Sending files in chunks with MTOM Web Services and .NET 2.0 from:http://www.codeproject.com/soap/MTO
- java 下载文件(web服务器与文件服务器分离)
- 启用Domino Web Server对Office2007文件下载支持
- Android WebView使用实例(html5、文件下载和远程URL)
- javaWeb 实现上传+下载 文件
- ASP.NET Web大文件下载的实现思路及代码
- JavaWeb——文件上传和下载
- 909422229_JavaWeb之Servlet原生文件下载
- HttpWebRequest实现文件下载(断点续传)
- java_web 学习记录(六):文件上传和下载
- 采用HttpServlet 实现web文件下载
- 用WebClinet实现SharePoint上文档库中文件的上传与下载
- JavaWeb-文件上传与下载(有改动)
- Android Webview实现文件下载功能
- web下载文件和跳转
- Java web 中实现简单的文件上传与下载——学习笔记
- 如果程序集是从 Web 上下载的,即使它存储于本地计算机,Windows 也会将其标记为 Web 文件,http://go.microsoft.com/fwlink/?LinkId=179545
- Java Web基础知识之文件下载:当你下载文件的时候到底发生了什么?