使用方法:
输入地址:例如http://0.0.0.0:8000?abc,def
#!usr/bin/python #coding=utf-8 import 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()