From b46539ef6a16a40a64ab5f97c9a8bc7136db0998 Mon Sep 17 00:00:00 2001 From: Adrian Cucos Date: Mon, 11 Jan 2021 13:32:41 +0100 Subject: [PATCH 01/17] try to see what happens --- binder/views.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/binder/views.py b/binder/views.py index 2c01a512..5db1888f 100644 --- a/binder/views.py +++ b/binder/views.py @@ -2238,6 +2238,8 @@ def dispatch_file_field(self, request, pk=None, file_field=None): guess = mimetypes.guess_type(file_field.path) guess = guess[0] if guess and guess[0] else 'application/octet-stream' + raise BinderRequestError(guess) + try: resp = StreamingHttpResponse(open(file_field.path, 'rb'), content_type=guess) except FileNotFoundError: From c1ffa66132d1f254551d08e77fcff6fea2420c5e Mon Sep 17 00:00:00 2001 From: Adrian Cucos Date: Mon, 11 Jan 2021 14:04:44 +0100 Subject: [PATCH 02/17] debug --- binder/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/binder/views.py b/binder/views.py index 5db1888f..f03c2ed4 100644 --- a/binder/views.py +++ b/binder/views.py @@ -2238,7 +2238,7 @@ def dispatch_file_field(self, request, pk=None, file_field=None): guess = mimetypes.guess_type(file_field.path) guess = guess[0] if guess and guess[0] else 'application/octet-stream' - raise BinderRequestError(guess) + raise BinderRequestError({"data": guess}) try: resp = StreamingHttpResponse(open(file_field.path, 'rb'), content_type=guess) From 27001ebbb7b5647fb1fac616ab7d4da659108069 Mon Sep 17 00:00:00 2001 From: Adrian Cucos Date: Mon, 11 Jan 2021 14:07:49 +0100 Subject: [PATCH 03/17] tst --- binder/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/binder/views.py b/binder/views.py index f03c2ed4..6f80036b 100644 --- a/binder/views.py +++ b/binder/views.py @@ -2238,7 +2238,7 @@ def dispatch_file_field(self, request, pk=None, file_field=None): guess = mimetypes.guess_type(file_field.path) guess = guess[0] if guess and guess[0] else 'application/octet-stream' - raise BinderRequestError({"data": guess}) + raise BinderRequestError(f'MIME: {guess}') try: resp = StreamingHttpResponse(open(file_field.path, 'rb'), content_type=guess) From 1414746c02da1812b07980d653d262736f4391c8 Mon Sep 17 00:00:00 2001 From: Adrian Cucos Date: Mon, 11 Jan 2021 14:55:47 +0100 Subject: [PATCH 04/17] test #1 --- binder/views.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/binder/views.py b/binder/views.py index 6f80036b..057ed52a 100644 --- a/binder/views.py +++ b/binder/views.py @@ -2232,13 +2232,14 @@ def dispatch_file_field(self, request, pk=None, file_field=None): file_field_name = file_field file_field = getattr(obj, file_field_name) + raise BinderRequestError(request) + if request.method == 'GET': if not file_field: raise BinderNotFound(file_field_name) guess = mimetypes.guess_type(file_field.path) guess = guess[0] if guess and guess[0] else 'application/octet-stream' - raise BinderRequestError(f'MIME: {guess}') try: resp = StreamingHttpResponse(open(file_field.path, 'rb'), content_type=guess) From 5af24fabdf09b4d4539096eb94a25c61c8c357e5 Mon Sep 17 00:00:00 2001 From: Adrian Cucos Date: Mon, 11 Jan 2021 15:00:10 +0100 Subject: [PATCH 05/17] test-2 --- binder/views.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/binder/views.py b/binder/views.py index 057ed52a..9d4d6abf 100644 --- a/binder/views.py +++ b/binder/views.py @@ -2232,10 +2232,8 @@ def dispatch_file_field(self, request, pk=None, file_field=None): file_field_name = file_field file_field = getattr(obj, file_field_name) - raise BinderRequestError(request) - if request.method == 'GET': - if not file_field: + if file_field: raise BinderNotFound(file_field_name) guess = mimetypes.guess_type(file_field.path) From a4450e2033c099a2334132d58cd9f5e45c2eeaec Mon Sep 17 00:00:00 2001 From: Adrian Cucos Date: Mon, 11 Jan 2021 15:22:28 +0100 Subject: [PATCH 06/17] added encode attribute --- binder/views.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/binder/views.py b/binder/views.py index 9d4d6abf..1adb9462 100644 --- a/binder/views.py +++ b/binder/views.py @@ -10,6 +10,7 @@ from collections import defaultdict, namedtuple from PIL import Image from inspect import getmro +import base64 import django from django.views.generic import View @@ -2233,7 +2234,7 @@ def dispatch_file_field(self, request, pk=None, file_field=None): file_field = getattr(obj, file_field_name) if request.method == 'GET': - if file_field: + if not file_field: raise BinderNotFound(file_field_name) guess = mimetypes.guess_type(file_field.path) @@ -2250,6 +2251,14 @@ def dispatch_file_field(self, request, pk=None, file_field=None): if 'prefix' in request.GET: filename = request.GET['prefix'] + ' - ' + filename resp['Content-Disposition'] = 'attachment; filename="{}"'.format(filename) + + if 'encode' in request.GET: + with open(file_field.path, 'rb') as file_data: + encoded_data = base64.b64encode(file_data.read()) + if 'prefix' in request.GET: + encoded_data = request.GET['prefix'] + ' - ' + encoded_data + resp['Content-Disposition'] = 'attachment; filename="{}"'.format(encoded_data) + return resp if request.method == 'POST': From abba98df9dfecdab3a4e64650edb36791826968d Mon Sep 17 00:00:00 2001 From: Adrian Cucos Date: Mon, 11 Jan 2021 15:42:08 +0100 Subject: [PATCH 07/17] try http response --- binder/views.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/binder/views.py b/binder/views.py index 1adb9462..849bac57 100644 --- a/binder/views.py +++ b/binder/views.py @@ -2255,9 +2255,10 @@ def dispatch_file_field(self, request, pk=None, file_field=None): if 'encode' in request.GET: with open(file_field.path, 'rb') as file_data: encoded_data = base64.b64encode(file_data.read()) - if 'prefix' in request.GET: - encoded_data = request.GET['prefix'] + ' - ' + encoded_data - resp['Content-Disposition'] = 'attachment; filename="{}"'.format(encoded_data) + # if 'prefix' in request.GET: + # encoded_data = request.GET['prefix'] + ' - ' + encoded_data + # resp['Content-Disposition'] = 'attachment; filename="{}"'.format(encoded_data) + return HttpResponse(encoded_data) return resp From 838328df9f014902a7b6f8043907cc82fbb3061a Mon Sep 17 00:00:00 2001 From: Adrian Cucos Date: Mon, 11 Jan 2021 15:46:07 +0100 Subject: [PATCH 08/17] . --- binder/views.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/binder/views.py b/binder/views.py index 849bac57..ef51dbc7 100644 --- a/binder/views.py +++ b/binder/views.py @@ -2258,7 +2258,10 @@ def dispatch_file_field(self, request, pk=None, file_field=None): # if 'prefix' in request.GET: # encoded_data = request.GET['prefix'] + ' - ' + encoded_data # resp['Content-Disposition'] = 'attachment; filename="{}"'.format(encoded_data) + raise BinderException("IDK") return HttpResponse(encoded_data) + raise BinderException("Pls dont") + return resp From 8233a0b32187b077d2f1f3db0c9d759fa42ac85e Mon Sep 17 00:00:00 2001 From: Adrian Cucos Date: Mon, 11 Jan 2021 15:51:12 +0100 Subject: [PATCH 09/17] encode --- binder/views.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/binder/views.py b/binder/views.py index ef51dbc7..aafbeaf5 100644 --- a/binder/views.py +++ b/binder/views.py @@ -2253,14 +2253,14 @@ def dispatch_file_field(self, request, pk=None, file_field=None): resp['Content-Disposition'] = 'attachment; filename="{}"'.format(filename) if 'encode' in request.GET: + raise BinderRequestError(resp) + with open(file_field.path, 'rb') as file_data: encoded_data = base64.b64encode(file_data.read()) # if 'prefix' in request.GET: # encoded_data = request.GET['prefix'] + ' - ' + encoded_data # resp['Content-Disposition'] = 'attachment; filename="{}"'.format(encoded_data) raise BinderException("IDK") - return HttpResponse(encoded_data) - raise BinderException("Pls dont") return resp From 9a5aadf1a5782f9d0115c26a418772814c7bcd63 Mon Sep 17 00:00:00 2001 From: Adrian Cucos Date: Sat, 16 Jan 2021 11:21:27 +0100 Subject: [PATCH 10/17] print stmt --- binder/views.py | 1 + 1 file changed, 1 insertion(+) diff --git a/binder/views.py b/binder/views.py index aafbeaf5..dc35f40b 100644 --- a/binder/views.py +++ b/binder/views.py @@ -2253,6 +2253,7 @@ def dispatch_file_field(self, request, pk=None, file_field=None): resp['Content-Disposition'] = 'attachment; filename="{}"'.format(filename) if 'encode' in request.GET: + print(resp) raise BinderRequestError(resp) with open(file_field.path, 'rb') as file_data: From d50e6aec4b1f3dcfb3ac7889d29816e4f4bf6850 Mon Sep 17 00:00:00 2001 From: Adrian Cucos Date: Sat, 16 Jan 2021 11:56:28 +0100 Subject: [PATCH 11/17] testin time --- binder/views.py | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/binder/views.py b/binder/views.py index dc35f40b..b8411291 100644 --- a/binder/views.py +++ b/binder/views.py @@ -2252,16 +2252,13 @@ def dispatch_file_field(self, request, pk=None, file_field=None): filename = request.GET['prefix'] + ' - ' + filename resp['Content-Disposition'] = 'attachment; filename="{}"'.format(filename) - if 'encode' in request.GET: - print(resp) - raise BinderRequestError(resp) + elif 'encode' in request.GET: + # print(resp) + # raise BinderRequestError(resp) with open(file_field.path, 'rb') as file_data: encoded_data = base64.b64encode(file_data.read()) - # if 'prefix' in request.GET: - # encoded_data = request.GET['prefix'] + ' - ' + encoded_data - # resp['Content-Disposition'] = 'attachment; filename="{}"'.format(encoded_data) - raise BinderException("IDK") + return HttpResponse(encoded_data) return resp From f1ce4a0ee7636bc680c02e5a86964a58651c33c6 Mon Sep 17 00:00:00 2001 From: Adrian Cucos Date: Sat, 16 Jan 2021 12:16:14 +0100 Subject: [PATCH 12/17] added files --- binder/views.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/binder/views.py b/binder/views.py index b8411291..58b230fa 100644 --- a/binder/views.py +++ b/binder/views.py @@ -2257,8 +2257,10 @@ def dispatch_file_field(self, request, pk=None, file_field=None): # raise BinderRequestError(resp) with open(file_field.path, 'rb') as file_data: + header = bytes(f"data:{guess};base64,", encoding='utf-8') encoded_data = base64.b64encode(file_data.read()) - return HttpResponse(encoded_data) + + return HttpResponse(header+encoded_data) return resp From f9441383ef90a7e67540a998c0949db40dcfe98e Mon Sep 17 00:00:00 2001 From: Adrian Cucos Date: Mon, 1 Feb 2021 12:49:24 +0100 Subject: [PATCH 13/17] trying to debug data --- binder/views.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/binder/views.py b/binder/views.py index 58b230fa..0f06338f 100644 --- a/binder/views.py +++ b/binder/views.py @@ -2258,7 +2258,9 @@ def dispatch_file_field(self, request, pk=None, file_field=None): with open(file_field.path, 'rb') as file_data: header = bytes(f"data:{guess};base64,", encoding='utf-8') - encoded_data = base64.b64encode(file_data.read()) + data = file_data.read() + print(data) + encoded_data = base64.b64encode(data) return HttpResponse(header+encoded_data) From d2e9579e5da8df5be810d65dbe4d4f76f53050be Mon Sep 17 00:00:00 2001 From: Adrian Cucos Date: Mon, 8 Feb 2021 14:13:44 +0100 Subject: [PATCH 14/17] remove print --- binder/views.py | 1 - 1 file changed, 1 deletion(-) diff --git a/binder/views.py b/binder/views.py index 0f06338f..e0d8f96f 100644 --- a/binder/views.py +++ b/binder/views.py @@ -2259,7 +2259,6 @@ def dispatch_file_field(self, request, pk=None, file_field=None): with open(file_field.path, 'rb') as file_data: header = bytes(f"data:{guess};base64,", encoding='utf-8') data = file_data.read() - print(data) encoded_data = base64.b64encode(data) return HttpResponse(header+encoded_data) From b3553206e85bf13fa27f96d087ea7548eb46ace7 Mon Sep 17 00:00:00 2001 From: Adrian Cucos Date: Fri, 2 Jul 2021 08:19:24 +0200 Subject: [PATCH 15/17] Fixed linting error. --- binder/views.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/binder/views.py b/binder/views.py index 0a2eabcb..5f79d528 100644 --- a/binder/views.py +++ b/binder/views.py @@ -2277,8 +2277,7 @@ def dispatch_file_field(self, request, pk=None, file_field=None): elif 'encode' in request.GET: # print(resp) - # raise BinderRequestError(resp) - + # raise BinderRequestError(resp) with open(file_field.path, 'rb') as file_data: header = bytes(f"data:{guess};base64,", encoding='utf-8') data = file_data.read() From 79bbf4b0dea69ad3dc5d25b36d0c2b1bc71a3bea Mon Sep 17 00:00:00 2001 From: Adrian Cucos Date: Fri, 2 Jul 2021 08:27:06 +0200 Subject: [PATCH 16/17] lint --- binder/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/binder/views.py b/binder/views.py index 5f79d528..5b31ab2a 100644 --- a/binder/views.py +++ b/binder/views.py @@ -2277,7 +2277,7 @@ def dispatch_file_field(self, request, pk=None, file_field=None): elif 'encode' in request.GET: # print(resp) - # raise BinderRequestError(resp) + # raise BinderRequestError(resp) with open(file_field.path, 'rb') as file_data: header = bytes(f"data:{guess};base64,", encoding='utf-8') data = file_data.read() From bc14f91b458db533cf3bf172d587dcc7a8a36806 Mon Sep 17 00:00:00 2001 From: Adrian Cucos Date: Tue, 24 Aug 2021 22:11:19 +0200 Subject: [PATCH 17/17] removed debug artifacts --- binder/views.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/binder/views.py b/binder/views.py index 5b31ab2a..d7396610 100644 --- a/binder/views.py +++ b/binder/views.py @@ -2276,8 +2276,6 @@ def dispatch_file_field(self, request, pk=None, file_field=None): resp['Content-Disposition'] = 'attachment; filename="{}"'.format(filename) elif 'encode' in request.GET: - # print(resp) - # raise BinderRequestError(resp) with open(file_field.path, 'rb') as file_data: header = bytes(f"data:{guess};base64,", encoding='utf-8') data = file_data.read()