[Python]mod_python使用時のダウンロード処理


現在、pythonを勉強中でちょっとしたWEBアプリを作っていたのですが、ダウンロード処理を書かないといけなくなったので、モジュールを作成してみました。よかったらどうぞ。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# -*- coding: utf-8 -*-
 
import sys
import os
 
def download(req,filepath):
 
    req.content_type = 'application/octet-stream'
    req.headers_out['Content-Type'] = 'application/octet-stream'
    req.headers_out['Content-Disposition'] = "attachment; filename=\"" + os.path.basename(filepath)
    req.headers_out['Content-Length'] = str(os.path.getsize(filepath))
    req.headers_out['Expires'] = '0'
    req.headers_out['Cache-Control'] = 'must-revalidate, post-check=0,pre-check=0'
    req.headers_out['Pragma'] = 'private'
 
    if sys.platform == "win32":
        import msvcrt
        msvcrt.setmode(sys.stdout.fileno(), os.O_BINARY)
 
    return req.sendfile(filepath)

関連記事