Files
mayan-edms/3rd_party_apps/sendfile/backends/mod_wsgi.py

31 lines
810 B
Python

from django.http import HttpResponse
from django.conf import settings
import os.path
def _convert_file_to_url(filename):
# CURRENTLY NOT WORKING
# mod_wsgi wants a relative URL not a filename
# so apache does an internal redirect
relpath = os.path.relpath(filename, settings.SENDFILE_ROOT)
url = [settings.SENDFILE_URL]
while relpath:
relpath, head = os.path.split(relpath)
url.insert(1, head)
return u''.join(url)
def sendfile(request, filename, **kwargs):
response = HttpResponse()
response['Location'] = _convert_file_to_url(filename)
# need to destroy get_host() to stop django
# rewriting our location to include http, so that
# mod_wsgi is able to do the internal redirect
request.get_host = lambda: ''
return response