我试图创建一个压缩文件,并允许从网页下载它。我能够让它为文件提供服务,但它不是在浏览器中下载,而是进行调用,并将其作为响应的主体。我只想下载这个文件。
def download(self, **kwargs):
filename = kwargs["filename"]
path = os.path.join(os.getcwd(), filename)
return cherrypy.lib.static.serve_file(path, "application/x-download", "attachment", os.path.basename(path))
download.exposed = True当我在来自/download的响应上使用chrome的检查工具时,我可以看到内容类型和配置头是按预期设置的,并且可以在响应部分看到zip内容。但是,我只想下载这个文件。我曾经有过这样的想法,但现在似乎无法让它再次运转起来。
HTTP/1.1 200 OK
Content-Type: application/x-download
Server: CherryPy/18.6.1
Date: Wed, 01 Jun 2022 20:14:59 GMT
Last-Modified: Wed, 01 Jun 2022 20:04:11 GMT
Content-Disposition: attachment; filename="benny.txt"
Accept-Ranges: bytes
Content-Length: 14发布于 2022-06-18 22:45:45
我有一个CherryPy应用程序,在这个应用程序中,我做了一些类似的事情,而且它可以工作。下面是我的代码:
def getzip(self, dirpath=None):
zipfile = os.path.join(ziplink, 'hostmaps/%s' % dirpath)
return static.serve_file(zipfile, 'application/x-download', 'attachment', os.path.basename(zipfile))使用jinja2模板,我有一个链接可以从HTML下载如下所示:
<p><a href="getzip?dirpath={{ zipfile }}">Download zip archive</a></p>希望这能有所帮助!
https://stackoverflow.com/questions/72467577
复制相似问题