Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- if "Trident/" in request.META['HTTP_USER_AGENT']:
- content_disposition = 'attachment; filename="%s"' % iri_to_uri(smart_bytes(filename))
- elif "Safari/" in request.META['HTTP_USER_AGENT'] and not
- "Chrome/" in request.META['HTTP_USER_AGENT']:
- content_disposition = b'attachment; filename="%s"' % filename.encode("utf-8")
- else:
- filename_encoded = ""
- str_chunk_size = 30
- for i in range(int(math.ceil(len(filename)/float(str_chunk_size)))):
- if i != 0:
- filename_encoded += " =?UTF-8?B?"
- else:
- filename_encoded += "=?UTF-8?B?"
- filename_encoded += base64.b64encode(smart_bytes(filename[i*str_chunk_size: (i+1)*str_chunk_size])) + "?="
- content_disposition = 'attachment; filename="%s"' % filename_encoded
- response = HttpResponse(content_type='application/force-download; charset=utf-8')
- response['Content-Disposition'] = content_disposition
- response['X-Sendfile'] = smart_bytes(os.path.join(STORAGE_ROOT, f.storage_name))
- response["Content-Length"] = f.size
- return response
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement