From 4cf935925bba4cd5d5dc79a333da434aa6cf0270 Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Tue, 22 Nov 2011 07:52:55 -0400 Subject: [PATCH] Added views that return the document image as a base64 encoded string --- apps/documents/urls.py | 4 ++++ apps/documents/views.py | 11 ++++++++--- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/apps/documents/urls.py b/apps/documents/urls.py index c20d04c47a..0d16fb3880 100644 --- a/apps/documents/urls.py +++ b/apps/documents/urls.py @@ -25,6 +25,10 @@ urlpatterns = patterns('documents.views', url(r'^(?P\d+)/display/$', 'get_document_image', {'size': DISPLAY_SIZE}, 'document_display'), url(r'^(?P\d+)/display/print/$', 'get_document_image', {'size': PRINT_SIZE}, 'document_display_print'), + url(r'^(?P\d+)/display/preview/base64/$', 'get_document_image', {'size': PREVIEW_SIZE, 'base64_version': True}, 'document_preview_base64'), + url(r'^(?P\d+)/display/preview/multipage/base64/$', 'get_document_image', {'size': MULTIPAGE_PREVIEW_SIZE, 'base64_version': True}, 'document_preview_multipage_base64'), + url(r'^(?P\d+)/display/thumbnail/base64/$', 'get_document_image', {'size': THUMBNAIL_SIZE, 'base64_version': True}, 'document_thumbnail_base64'), + url(r'^(?P\d+)/download/$', 'document_download', (), 'document_download'), url(r'^(?P\d+)/create/siblings/$', 'document_create_siblings', (), 'document_create_siblings'), url(r'^(?P\d+)/find_duplicates/$', 'document_find_duplicates', (), 'document_find_duplicates'), diff --git a/apps/documents/views.py b/apps/documents/views.py index 8c76416d7f..60a03ee74c 100644 --- a/apps/documents/views.py +++ b/apps/documents/views.py @@ -2,7 +2,7 @@ import urlparse import copy from django.utils.translation import ugettext_lazy as _ -from django.http import HttpResponseRedirect +from django.http import HttpResponseRedirect, HttpResponse from django.shortcuts import render_to_response, get_object_or_404 from django.template import RequestContext from django.contrib import messages @@ -271,7 +271,7 @@ def document_edit(request, document_id): }, context_instance=RequestContext(request)) -def get_document_image(request, document_id, size=PREVIEW_SIZE): +def get_document_image(request, document_id, size=PREVIEW_SIZE, base64_version=False): check_permissions(request.user, [PERMISSION_DOCUMENT_VIEW]) document = get_object_or_404(Document, pk=document_id) @@ -288,7 +288,12 @@ def get_document_image(request, document_id, size=PREVIEW_SIZE): rotation = int(request.GET.get('rotation', DEFAULT_ROTATION)) % 360 - return sendfile.sendfile(request, document.get_image(size=size, page=page, zoom=zoom, rotation=rotation), mimetype=DEFAULT_FILE_FORMAT_MIMETYPE) + if base64_version: + return HttpResponse(u'' % document.get_image(size=size, page=page, zoom=zoom, rotation=rotation, as_base64=True)) + else: + # TODO: hardcoded MIMETYPE + return sendfile.sendfile(request, document.get_image(size=size, page=page, zoom=zoom, rotation=rotation), mimetype=DEFAULT_FILE_FORMAT_MIMETYPE) + def document_download(request, document_id):