0

我创建了一个简单的线程 python 服务器,我有两个格式参数,一个是 JSON(返回字符串数据),另一个是 zip。当用户选择 format=zip 作为输入参数之一时,我需要服务器将 zip 文件返回给用户。我应该如何在我的服务器的 do_GET() 上将文件返回给用户?我是只返回可以下载文件的 URL,还是可以直接将文件发回给用户?如果选项二是可能的,我该怎么做?

谢谢

4

2 回答 2

0

您应该将文件直接发送回用户,并添加Content-Type具有正确媒体类型的标头,例如application/zip.

所以标题可能如下所示:

Content-Type: application/zip
于 2014-04-07T11:21:41.533 回答
0

问题是我在尝试返回它之前没有关闭 zipfile 对象。文件上似乎有锁。

要使用 GET 从简单的 http python 服务器返回 zip 文件,您需要执行以下操作:

  1. 将标题设置为“应用程序/zip”

    self.send_header("Content-type:", "application/zip")

  2. 使用 zipfile 模块创建 zip 文件

  3. 使用文件路径(例如:c:/temp/zipfile.zip)使用 'rb' 方法打开文件以读取二进制信息

    openObj = open( < path > , 'rb')

  4. 将对象返回给浏览器

    openObj.close() del openObj self.wfile.write(openObj.read())

    就是这样。谢谢大家的帮助。

于 2014-04-07T14:53:37.517 回答