From f5b1533ca956d55c4cd7a5d70a767b0283d9a2f5 Mon Sep 17 00:00:00 2001 From: Piero Toffanin Date: Mon, 4 Mar 2019 11:42:51 -0500 Subject: [PATCH] Fixed task import from file upload --- app/api/tasks.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/app/api/tasks.py b/app/api/tasks.py index 08178018..0cf51e66 100644 --- a/app/api/tasks.py +++ b/app/api/tasks.py @@ -3,8 +3,9 @@ from wsgiref.util import FileWrapper import mimetypes -import datetime +from shutil import copyfileobj from django.core.exceptions import ObjectDoesNotExist, SuspiciousFileOperation, ValidationError +from django.core.files.uploadedfile import InMemoryUploadedFile from django.db import transaction from django.http import FileResponse from django.http import HttpResponse @@ -357,9 +358,14 @@ class TaskAssetsImport(APIView): if len(files) > 0: destination_file = task.assets_path("all.zip") + with open(destination_file, 'wb+') as fd: - for chunk in files[0].chunks(): - fd.write(chunk) + if isinstance(files[0], InMemoryUploadedFile): + for chunk in files[0].chunks(): + fd.write(chunk) + else: + with open(files[0].temporary_file_path(), 'rb') as file: + copyfileobj(file, fd) worker_tasks.process_task.delay(task.id)