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
This commit is contained in:
Jacob Kaplan-Moss 2009-05-07 17:53:23 +00:00
parent fb9ac5729d
commit a59095af24
2 changed files with 4 additions and 4 deletions

View File

@ -6,7 +6,7 @@ from django.conf import settings
from django.core.exceptions import ImproperlyConfigured, SuspiciousOperation from django.core.exceptions import ImproperlyConfigured, SuspiciousOperation
from django.core.files import locks, File from django.core.files import locks, File
from django.core.files.move import file_move_safe 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.functional import LazyObject
from django.utils.importlib import import_module from django.utils.importlib import import_module
from django.utils.text import get_valid_filename from django.utils.text import get_valid_filename
@ -212,7 +212,7 @@ class FileSystemStorage(Storage):
path = safe_join(self.location, name) path = safe_join(self.location, name)
except ValueError: except ValueError:
raise SuspiciousOperation("Attempted access to '%s' denied." % name) raise SuspiciousOperation("Attempted access to '%s' denied." % name)
return os.path.normpath(path) return smart_str(os.path.normpath(path))
def size(self, name): def size(self, name):
return os.path.getsize(self.path(name)) return os.path.getsize(self.path(name))

View File

@ -70,13 +70,13 @@ ValueError: The 'normal' attribute has no file associated with it.
[] []
>>> files.sort() >>> files.sort()
>>> files >>> files
[u'default.txt', u'django_test.txt'] ['default.txt', 'django_test.txt']
>>> obj1.save() >>> obj1.save()
>>> dirs, files = temp_storage.listdir('tests') >>> dirs, files = temp_storage.listdir('tests')
>>> files.sort() >>> files.sort()
>>> files >>> 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. # Files can be read in a little at a time, if necessary.