Skip to content

Unicode filename is not handled gracefully #1

@nikolajbaer

Description

@nikolajbaer

When uploading a filename with unicode in it, there is a unicode decode error. Probably best strategy would be to do an encode to unicode when handling the input.

File "/home/someproject/lib/python2.6/site-packages/django/core/handlers/base.py", line 111, in get_response
response = callback(request, _callback_args, *_callback_kwargs)

File "/home/someproject/lib/python2.6/site-packages/django/contrib/admin/options.py", line 307, in wrapper
return self.admin_site.admin_view(view)(_args, *_kwargs)

File "/home/someproject/lib/python2.6/site-packages/django/utils/decorators.py", line 93, in _wrapped_view
response = view_func(request, _args, *_kwargs)

File "/home/someproject/lib/python2.6/site-packages/django/views/decorators/cache.py", line 79, in _wrapped_view_func
response = view_func(request, _args, *_kwargs)

File "/home/someproject/lib/python2.6/site-packages/django/contrib/admin/sites.py", line 197, in inner
return view(request, _args, *_kwargs)

File "/home/someproject/lib/python2.6/site-packages/django/utils/decorators.py", line 28, in _wrapper
return bound_func(_args, *_kwargs)

File "/home/someproject/lib/python2.6/site-packages/django/utils/decorators.py", line 93, in _wrapped_view
response = view_func(request, _args, *_kwargs)

File "/home/someproject/lib/python2.6/site-packages/django/utils/decorators.py", line 24, in bound_func
return func(self, _args2, *_kwargs2)

File "/home/someproject/lib/python2.6/site-packages/django/db/transaction.py", line 217, in inner
res = func(_args, *_kwargs)

File "/home/someproject/lib/python2.6/site-packages/django/contrib/admin/options.py", line 881, in add_view
if all_valid(formsets) and form_validated:

File "/home/someproject/lib/python2.6/site-packages/django/forms/formsets.py", line 360, in all_valid
if not formset.is_valid():

File "/home/someproject/lib/python2.6/site-packages/django/forms/formsets.py", line 263, in is_valid
err = self.errors

File "/home/someproject/lib/python2.6/site-packages/django/forms/formsets.py", line 241, in _get_errors
self.full_clean()

File "/home/someproject/lib/python2.6/site-packages/django/forms/formsets.py", line 284, in full_clean
self._errors.append(form.errors)

File "/home/someproject/lib/python2.6/site-packages/django/forms/forms.py", line 112, in _get_errors
self.full_clean()

File "/home/someproject/lib/python2.6/site-packages/django/forms/forms.py", line 269, in full_clean
self._post_clean()

File "/home/someproject/lib/python2.6/site-packages/django/forms/models.py", line 308, in _post_clean
self.instance = construct_instance(self, self.instance, opts.fields, opts.exclude)

File "/home/someproject/lib/python2.6/site-packages/django/forms/models.py", line 50, in construct_instance
f.save_form_data(instance, cleaned_data[f.name])

File "/home/someproject/lib/python2.6/site-packages/photoprocessor/fields.py", line 386, in save_form_data
setattr(instance, self.name, data)

File "/home/someproject/lib/python2.6/site-packages/photoprocessor/fields.py", line 342, in set
self.get(instance).save(name, content, False)

File "/home/someproject/lib/python2.6/site-packages/photoprocessor/fields.py", line 263, in save
self.name = self.storage.save(name, content)

File "/home/someproject/lib/python2.6/site-packages/django/core/files/storage.py", line 48, in save
name = self.get_available_name(name)

File "/home/someproject/lib/python2.6/site-packages/django/core/files/storage.py", line 74, in get_available_name
while self.exists(name):

File "/home/someproject/lib/python2.6/site-packages/django/core/files/storage.py", line 218, in exists
return os.path.exists(self.path(name))

File "/home/someproject/lib/python2.6/genericpath.py", line 18, in exists
st = os.stat(path)

UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in position 62: ordinal not in range(128)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions