From a59095af24bb64a025ce99de3555f2a21da7a2e8 Mon Sep 17 00:00:00 2001 From: Jacob Kaplan-Moss Date: Thu, 7 May 2009 17:53:23 +0000 Subject: [PATCH] Fixed #11030: fixed file uploads on non-utf8 filesystem encoding. Thanks, Honza Kral. git-svn-id: http://code.djangoproject.com/svn/django/trunk@10693 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- django/core/files/storage.py | 4 ++-- tests/modeltests/files/models.py | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/django/core/files/storage.py b/django/core/files/storage.py index bf30a787bbd..13acada64a9 100644 --- a/django/core/files/storage.py +++ b/django/core/files/storage.py @@ -6,7 +6,7 @@ from django.conf import settings from django.core.exceptions import ImproperlyConfigured, SuspiciousOperation from django.core.files import locks, File from django.core.files.move import file_move_safe -from django.utils.encoding import force_unicode +from django.utils.encoding import force_unicode, smart_str from django.utils.functional import LazyObject from django.utils.importlib import import_module from django.utils.text import get_valid_filename @@ -212,7 +212,7 @@ class FileSystemStorage(Storage): path = safe_join(self.location, name) except ValueError: raise SuspiciousOperation("Attempted access to '%s' denied." % name) - return os.path.normpath(path) + return smart_str(os.path.normpath(path)) def size(self, name): return os.path.getsize(self.path(name)) diff --git a/tests/modeltests/files/models.py b/tests/modeltests/files/models.py index ba3eb999104..30bbdf28417 100644 --- a/tests/modeltests/files/models.py +++ b/tests/modeltests/files/models.py @@ -70,13 +70,13 @@ ValueError: The 'normal' attribute has no file associated with it. [] >>> files.sort() >>> files -[u'default.txt', u'django_test.txt'] +['default.txt', 'django_test.txt'] >>> obj1.save() >>> dirs, files = temp_storage.listdir('tests') >>> files.sort() >>> files -[u'assignment.txt', u'default.txt', u'django_test.txt'] +['assignment.txt', 'default.txt', 'django_test.txt'] # Files can be read in a little at a time, if necessary.