Show More
@@ -1,3 +1,5 b'' | |||
|
1 | import magic | |
|
2 | ||
|
1 | 3 | from django.db import models |
|
2 | 4 | |
|
3 | 5 | from boards import utils |
@@ -15,7 +17,8 b' class AttachmentManager(models.Manager):' | |||
|
15 | 17 | if len(existing) > 0: |
|
16 | 18 | attachment = existing[0] |
|
17 | 19 | else: |
|
18 | file_type = file.name.split(FILE_EXTENSION_DELIMITER)[-1].lower() | |
|
20 | file_type = magic.from_buffer(file.chunks().__next__(), mime=True)\ | |
|
21 | .decode().split('/')[-1] | |
|
19 | 22 | attachment = Attachment.objects.create( |
|
20 | 23 | file=file, mimetype=file_type, hash=file_hash) |
|
21 | 24 |
@@ -128,10 +128,14 b' def validate_file_size(size: int):' | |||
|
128 | 128 | |
|
129 | 129 | def get_upload_filename(model_instance, old_filename): |
|
130 | 130 | # TODO Use something other than random number in file name |
|
131 | if hasattr(model_instance, 'file_type'): | |
|
132 | extension = model_instance.file_type | |
|
133 | else: | |
|
134 | extension = old_filename.split(FILE_EXTENSION_DELIMITER)[-1:][0] | |
|
131 | 135 | new_name = '{}{}.{}'.format( |
|
132 | 136 | str(int(time.mktime(time.gmtime()))), |
|
133 | 137 | str(int(random() * 1000)), |
|
134 | old_filename.split(FILE_EXTENSION_DELIMITER)[-1:][0]) | |
|
138 | extension) | |
|
135 | 139 | |
|
136 | 140 | directory = UPLOAD_DIRS[type(model_instance).__name__] |
|
137 | 141 |
General Comments 0
You need to be logged in to leave comments.
Login now