Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in
Toggle navigation
F
flask-admin
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
JIRA
JIRA
Merge Requests
0
Merge Requests
0
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
Python-Dev
flask-admin
Commits
52ef3ff2
Commit
52ef3ff2
authored
Feb 12, 2014
by
Serge S. Koval
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #465 from uniphil/imageupload
File and ImageUploadField fixes
parents
805279fb
94c1c684
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
28 additions
and
2 deletions
+28
-2
upload.py
flask_admin/form/upload.py
+5
-2
copyleft.gif
flask_admin/tests/data/copyleft.gif
+0
-0
copyleft.jpeg
flask_admin/tests/data/copyleft.jpeg
+0
-0
test_form_upload.py
flask_admin/tests/test_form_upload.py
+23
-0
No files found.
flask_admin/form/upload.py
View file @
52ef3ff2
...
...
@@ -177,7 +177,8 @@ class FileUploadField(fields.TextField):
return
True
return
(
'.'
in
filename
and
filename
.
rsplit
(
'.'
,
1
)[
1
]
in
self
.
allowed_extensions
)
filename
.
rsplit
(
'.'
,
1
)[
1
]
.
lower
()
in
map
(
str
.
lower
,
self
.
allowed_extensions
))
def
pre_validate
(
self
,
form
):
if
(
self
.
data
and
...
...
@@ -208,6 +209,8 @@ class FileUploadField(fields.TextField):
filename
=
self
.
generate_name
(
obj
,
self
.
data
)
filename
=
self
.
_save_file
(
self
.
data
,
filename
)
# update filename of FileStorage to our validated name
self
.
data
.
filename
=
filename
setattr
(
obj
,
name
,
filename
)
...
...
@@ -329,7 +332,7 @@ class ImageUploadField(FileUploadField):
"""
# Check if PIL is installed
if
Image
is
None
:
raise
Exception
(
'PIL library was not found'
)
raise
ImportError
(
'PIL library was not found'
)
self
.
max_size
=
max_size
self
.
thumbnail_fn
=
thumbgen
or
thumbgen_filename
...
...
flask_admin/tests/data/copyleft.gif
0 → 100644
View file @
52ef3ff2
1.54 KB
flask_admin/tests/data/copyleft.jpeg
0 → 100644
View file @
52ef3ff2
12.4 KB
flask_admin/tests/test_form_upload.py
View file @
52ef3ff2
...
...
@@ -95,6 +95,10 @@ def test_image_upload_field():
safe_delete
(
path
,
'test2.png'
)
safe_delete
(
path
,
'test2_thumb.jpg'
)
safe_delete
(
path
,
'test1.jpg'
)
safe_delete
(
path
,
'test1.jpeg'
)
safe_delete
(
path
,
'test1.gif'
)
safe_delete
(
path
,
'test1.png'
)
safe_delete
(
path
,
'test1.tiff'
)
class
TestForm
(
form
.
BaseForm
):
upload
=
form
.
ImageUploadField
(
'Upload'
,
...
...
@@ -204,6 +208,25 @@ def test_image_upload_field():
ok_
(
op
.
exists
(
op
.
join
(
path
,
'test1.jpg'
)))
# check allowed extensions
for
extension
in
(
'gif'
,
'jpg'
,
'jpeg'
,
'png'
,
'tiff'
):
filename
=
'copyleft.'
+
extension
filepath
=
op
.
join
(
op
.
dirname
(
__file__
),
'data'
,
filename
)
with
open
(
filepath
,
'rb'
)
as
fp
:
with
app
.
test_request_context
(
method
=
'POST'
,
data
=
{
'upload'
:
(
fp
,
filename
)}):
my_form
=
TestNoResizeForm
(
helpers
.
get_form_data
())
ok_
(
my_form
.
validate
())
my_form
.
populate_obj
(
dummy
)
eq_
(
dummy
.
upload
,
my_form
.
upload
.
data
.
filename
)
# check case-sensitivity for extensions
filename
=
op
.
join
(
op
.
dirname
(
__file__
),
'data'
,
'copyleft.jpg'
)
with
open
(
filename
,
'rb'
)
as
fp
:
with
app
.
test_request_context
(
method
=
'POST'
,
data
=
{
'upload'
:
(
fp
,
'copyleft.JPG'
)}):
my_form
=
TestNoResizeForm
(
helpers
.
get_form_data
())
ok_
(
my_form
.
validate
())
def
test_relative_path
():
app
=
Flask
(
__name__
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment