Commit 65370564 authored by lanybass's avatar lanybass

fix url_relative_path error on windows

make upload path auto
fix pic save incomplete
fix 'thumb image return none error'
remove an extra 'return' token
fix dynamic gif thumb error
parent e5295fe6
......@@ -21,7 +21,6 @@ except ImportError:
Image = None
ImageOps = None
__all__ = ['FileUploadInput', 'FileUploadField',
'ImageUploadInput', 'ImageUploadField',
'namegen_filename', 'thumbgen_filename']
......@@ -103,8 +102,6 @@ class ImageUploadInput(object):
if field.url_relative_path:
filename = urljoin(field.url_relative_path, filename)
return url_for(field.endpoint, filename)
return url_for(field.endpoint, filename=field.data)
......@@ -229,6 +226,10 @@ class FileUploadField(fields.TextField):
def _save_file(self, data, filename):
path = self._get_path(filename)
if not op.exists(op.dirname(path)):
print 1
os.makedirs(os.path.dirname(path), 0666)
data.save(path)
return filename
......@@ -328,6 +329,7 @@ class ImageUploadField(FileUploadField):
self.thumbnail_size = thumbnail_size
self.endpoint = endpoint
self.image = None
self.url_relative_path = url_relative_path
if not allowed_extensions:
allowed_extensions = ('gif', 'jpg', 'jpeg', 'png', 'tiff')
......@@ -362,14 +364,20 @@ class ImageUploadField(FileUploadField):
# Saving
def _save_file(self, data, filename):
path = self._get_path(filename)
if not op.exists(op.dirname(path)):
print 2
os.makedirs(os.path.dirname(path), 0666)
if self.image and self.max_size:
filename, format = self._get_save_format(filename, self.image)
self._save_image(self._resize(self.image, self.max_size),
self._get_path(filename),
path,
format)
else:
data.save(self._get_path(filename))
data.seek(0)
data.save(path)
self._save_thumbnail(data, filename)
......@@ -389,11 +397,14 @@ class ImageUploadField(FileUploadField):
if force:
return ImageOps.fit(self.image, (width, height), Image.ANTIALIAS)
else:
return self.image.copy().thumbnail((width, height), Image.ANTIALIAS)
thumb = self.image.copy()
thumb.thumbnail((width, height), Image.ANTIALIAS)
return thumb
return image
def _save_image(self, image, path, format='JPEG'):
image = image.convert('RGB')
with open(path, 'wb') as fp:
image.save(fp, format)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment