cgilsxml.py: permettre de télécharger le fichier avec la disposition inline

This commit is contained in:
Jephté Clain 2016-06-08 14:07:39 +04:00
parent ce0193f64b
commit a730609280
1 changed files with 5 additions and 1 deletions

View File

@ -313,6 +313,8 @@ def run_cgilsxml():
help=u"Activer le mode CGI. Ce mode est automatiquement activé si la variable d'environnement REQUEST_METHOD existe.")
OP.add_option('--cgi-allow-cache', dest='cgi_allow_cache', action='store_true',
help=u"En mode CGI, ne pas rajouter les en-tête désactivant la mise en cache du résultat.")
OP.add_option('--cgi-inline', dest='cgi_inline', action='store_true',
help=u"En mode CGI, servir le fichier avec Content-Disposition=inline au lieu de attachment.")
OP.add_option('-P', '--cgi-path-info', dest='path_info',
help=u"Spécifier un chemin d'un fichier à télécharger. En mode CGI, cette valeur est prise dans la variable d'environnement PATH_INFO")
OP.add_option('-Q', '--cgi-query-string', dest='query_string',
@ -341,6 +343,7 @@ def run_cgilsxml():
environ = os.environ
cgi_cache = o.cgi_allow_cache and True or False
cgi_inline = o.cgi_inline and True or False
cgi_mode = o.cgi_mode
cgi_query_string = o.query_string
if cgi_query_string is not None: environ['QUERY_STRING'] = cgi_query_string
@ -405,7 +408,8 @@ def run_cgilsxml():
if ctype is None: ctype, encoding = mimetypes.guess_type(dlname, False)
if ctype is None: ctype = "application/octet-stream"
print "Content-Type: %s; charset=utf-8" % ctype
print "Content-Disposition: attachment; filename=\"%s\"" % dlname
disposition = cgi_inline and 'inline' or 'attachment'
print "Content-Disposition: %s; filename=\"%s\"" % (disposition, dlname)
print
inf = open(file.pf, 'rb')
try: shutil.copyfileobj(inf, sys.stdout)