如何通过HTTP发送文件,这是好方法,使用Python?

5 python http http-headers

如果用Python2.6编写的一个可能的HTTP服务器具有对文件的本地访问权限,那么该服务器根据请求将文件返回给客户端的最正确方法是什么?

让我们说这是目前的情况:

header('Content-Type', file.mimetype)
header('Content-Length', file.size) # file size in bytes
header('Content-MD5', file.hash)    # an md5 hash of the entire file

return open(file.path).read()
Run Code Online (Sandbox Code Playgroud)

所有文件都是.zip或.rar档案,不超过几兆字节.

在目前的情况下,浏览器奇怪地处理传入的下载.例如,没有浏览器知道文件的名称,因此它们使用随机或默认名称.(Firefox甚至用.part扩展名保存了文件,即使它完整且完全可用.)

什么是解决这个问题的最佳方法以及我可能甚至不知道的其他错误呢?

我不发送什么标题?

谢谢!

ZZ *_*der 6

这是我发送ZIP文件的方式,

    req.send_response(200)
    req.send_header('Content-Type', 'application/zip')
    req.send_header('Content-Disposition', 'attachment;'
                    'filename=%s' % filename)
Run Code Online (Sandbox Code Playgroud)

大多数浏览器正确处理它.