add HttpFileResponse

This commit is contained in:
j 2010-02-16 17:59:05 +05:30
parent 2d6c41ae97
commit 7f34b221b1
1 changed files with 25 additions and 0 deletions

25
oxdjango/http.py Normal file
View File

@ -0,0 +1,25 @@
# -*- coding: utf-8 -*-
# vi:si:et:sw=4:sts=4:ts=4
import os
import mimetypes
from django.http import HttpResponse, Http404
from django.conf import settings
def HttpFileResponse(path, content_type=None, filename=None):
if not os.path.exists(path):
raise Http404
if not content_type:
content_type = mimetypes.guess_type(path)[0]
if settings.XSENDFILE:
response = HttpResponse()
response['X-Sendfile'] = path
response['Content-Type'] = content_type
response['Content-Length'] = os.stat(path).st_size
else:
response = HttpResponse(open(path), content_type=content_type)
if filename:
response['Content-Disposition'] = 'attachment; filename="%s"' % filename
return response