使用方法:
输入地址:例如http://0.0.0.0:8000?abc,def
#!usr/bin/python
#coding=utf-8import uuid
import os
import zipfile
import re
import sys
import officetoimage
import rarfile
import tarfile
import subprocess
from cherrypy import wsgiserver
import time
import threading
########SET CODE TO DEAL CHINESE############
default_encoding = 'utf-8'
if sys.getdefaultencoding()!=default_encoding:
reload(sys)
sys.setdefaultencoding(default_encoding)
def app(environ,start_response):
out = 'tmp/'+str(uuid.uuid1())+'.zip'
status = '200 OK'
filename = 'test.zip'
response_header = [('Content-type','application/'+out),('Content-disposition','attachment;filename='+filename)]
start_response(status,response_header)
#dict_e = get_environ()
filename_list = environ['QUERY_STRING'].split(',')
if os.path.exists('tmp') is not True:
os.makedirs('tmp',0755)
position = 0
flag = True
archive = zipfile.ZipFile(out,'a',zipfile.ZIP_DEFLATED)
strs = open(out,'rb')
for filename in filename_list:
if os.path.isfile(filename):
archive.write(filename)
strs.seek(position)
result = strs.read()
position = strs.tell()
yield result
else:
for root,dirs,files in os.walk(filename):
for file in files:
archive.write(os.path.join(root,file))
strs.seek(position)
result = strs.read()
position = strs.tell()
yield result
archive.close()
strs.seek(position)
result = strs.read()
position = strs.tell()
yield result
return
if __name__ == '__main__':
server = wsgiserver.CherryPyWSGIServer(('0.0.0.0',8000),app)
server.start()
这篇博客介绍如何利用Python将文件进行zip打包,并实现流式下载。通过给出的示例代码,展示了如何处理指定地址的资源,如http://0.0.0.0:8000?abc,def。"
114627769,8095021,UE4大数据可视化:点击物体事件处理,"['UE4', '可视化', '教程', '游戏开发', '大数据可视化']

427

被折叠的 条评论
为什么被折叠?



