From a034b575ee75fb8b62ac17dc72192a0f6102def8 Mon Sep 17 00:00:00 2001 From: Lazlo Westerhof Date: Sun, 10 Aug 2014 10:44:06 +0200 Subject: [PATCH] Guess the content type of a file --- onionshare/onionshare.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/onionshare/onionshare.py b/onionshare/onionshare.py index dc3dbf29..c699cfb1 100644 --- a/onionshare/onionshare.py +++ b/onionshare/onionshare.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -import os, sys, subprocess, time, hashlib, platform, json, locale, socket, argparse, Queue, inspect, base64 +import os, sys, subprocess, time, hashlib, platform, json, locale, socket, argparse, Queue, inspect, base64, mimetypes from random import randint from functools import wraps @@ -166,6 +166,10 @@ def download(slug_candidate): r = Response(generate()) r.headers.add('Content-Length', filesize) r.headers.add('Content-Disposition', 'attachment', filename=basename) + # guess content type + (content_type, _) = mimetypes.guess_type(basename, strict=False) + if content_type is not None: + r.headers.add('Content-Type', content_type) return r @app.errorhandler(404)