Merge remote-tracking branch 'origin/production' into production
[redakcja.git] / apps / fileupload / views.py
index d08bfd3..a2025fe 100644 (file)
@@ -4,6 +4,7 @@ from urllib import quote
 from django.conf import settings
 from django.http import HttpResponse, HttpResponseRedirect, HttpResponseForbidden, Http404
 from django.utils.decorators import method_decorator
 from django.conf import settings
 from django.http import HttpResponse, HttpResponseRedirect, HttpResponseForbidden, Http404
 from django.utils.decorators import method_decorator
+from django.utils.encoding import smart_bytes
 from django.views.decorators.vary import vary_on_headers
 from django.views.generic import FormView, View
 from .forms import UploadForm
 from django.views.decorators.vary import vary_on_headers
 from django.views.generic import FormView, View
 from .forms import UploadForm
@@ -19,7 +20,7 @@ else:
     def thumbnail(relpath):
         try:
             return default.backend.get_thumbnail(relpath, "x50").url
     def thumbnail(relpath):
         try:
             return default.backend.get_thumbnail(relpath, "x50").url
-        except IOError:
+        except (IOError, ValueError):
             # That's not an image. No thumb.
             return None
 
             # That's not an image. No thumb.
             return None
 
@@ -74,9 +75,10 @@ class UploadView(FormView):
         Makes sure it's inside MEDIA_ROOT.
         
         """
         Makes sure it's inside MEDIA_ROOT.
         
         """
+        filename = smart_bytes(filename)
         path = os.path.abspath(os.path.join(
                 settings.MEDIA_ROOT,
         path = os.path.abspath(os.path.join(
                 settings.MEDIA_ROOT,
-                self.get_directory(),
+                smart_bytes(self.get_directory()),
                 filename))
         if not path.startswith(settings.MEDIA_ROOT):
             raise Http404
                 filename))
         if not path.startswith(settings.MEDIA_ROOT):
             raise Http404