Just send Content-disposition: attachment-Header if content is no image

Content-disposition: attachment prevents most code to be executed in the
browser (Java being an exception), but this is not needed for images and
makes viewing images in clients that don't show the pictures inline even
more complicated.

(Also this PR removes unused imports).
This commit is contained in:
Lars Bensmann 2015-07-26 20:51:18 +02:00
parent 6d8993145b
commit 5ede0f9a7a
1 changed files with 3 additions and 6 deletions

View File

@ -8,16 +8,12 @@ import mimetypes
import os import os
import random import random
import shutil import shutil
import signal
import sleekxmpp
import ssl import ssl
import string import string
import sys
import yaml import yaml
from sleekxmpp.componentxmpp import ComponentXMPP from sleekxmpp.componentxmpp import ComponentXMPP
from threading import Lock from threading import Lock
from threading import Thread
try: try:
# Python 3 # Python 3
@ -150,7 +146,8 @@ class HttpHandler(BaseHTTPRequestHandler):
if mime is None: if mime is None:
mime = 'application/octet-stream' mime = 'application/octet-stream'
self.send_header("Content-Type", mime) self.send_header("Content-Type", mime)
self.send_header("Content-Disposition", 'attachment; filename="{}"'.format(os.path.basename(filename))) if mime[:6] != 'image/':
self.send_header("Content-Disposition", 'attachment; filename="{}"'.format(os.path.basename(filename)))
fs = os.fstat(f.fileno()) fs = os.fstat(f.fileno())
self.send_header("Content-Length", str(fs.st_size)) self.send_header("Content-Length", str(fs.st_size))
self.end_headers() self.end_headers()
@ -174,7 +171,7 @@ if __name__ == "__main__":
parser = argparse.ArgumentParser() parser = argparse.ArgumentParser()
parser.add_argument("-c", "--config", default='config.yml', help='Specify alternate config file.') parser.add_argument("-c", "--config", default='config.yml', help='Specify alternate config file.')
parser.add_argument("-l", "--logfile", default=None, help='File where the server log will be stored. If not specified log to stdout.') parser.add_argument("-l", "--logfile", default=None, help='File where the server log will be stored. If not specified log to stdout.')
args = parser.parse_args() args = parser.parse_args()
with open(args.config,'r') as ymlfile: with open(args.config,'r') as ymlfile: