Skip to content

Commit 3a4a829

Browse files
committed
use default_storage to save local files
1 parent edbfc1f commit 3a4a829

File tree

1 file changed

+19
-12
lines changed

1 file changed

+19
-12
lines changed

ajaxuploader/backends/local.py

Lines changed: 19 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,33 @@
1-
from io import FileIO, BufferedWriter
21
import os
2+
from io import FileIO, BufferedWriter
33

4-
from django.conf import settings
4+
5+
from django.core.files.storage import default_storage
6+
from django.core.files.base import ContentFile
7+
from django.template.loader import render_to_string
58

69
from ajaxuploader.backends.base import AbstractUploadBackend
710

11+
812
class LocalUploadBackend(AbstractUploadBackend):
9-
UPLOAD_DIR = "uploads"
13+
UPLOAD_DIR = 'uploads'
1014

1115
def setup(self, filename):
12-
self._path = os.path.join(
13-
settings.MEDIA_ROOT, self.UPLOAD_DIR, filename)
14-
try:
15-
os.makedirs(os.path.realpath(os.path.dirname(self._path)))
16-
except:
17-
pass
18-
self._dest = BufferedWriter(FileIO(self._path, "w"))
16+
# join UPLOAD_DIR with filename
17+
new_path = os.path.join(self.UPLOAD_DIR, filename)
18+
19+
# save empty file in default storage with path = new_path
20+
self._path = default_storage.save(new_path, ContentFile(''))
21+
22+
# get absolute path to new file
23+
self._abs_path = default_storage.path(self._path)
24+
25+
# create BufferedWriter for new file
26+
self._dest = BufferedWriter(FileIO(self._abs_path, "w"))
1927

2028
def upload_chunk(self, chunk):
2129
self._dest.write(chunk)
2230

2331
def upload_complete(self, request, filename):
24-
path = settings.MEDIA_URL + self.UPLOAD_DIR + "/" + filename
2532
self._dest.close()
26-
return {"path": path}
33+
return {"path": self._path}

0 commit comments

Comments
 (0)