Better support for folder uploads
|Reported by:||Jonas H.||Owned by:||nobody|
|Has patch:||no||Needs documentation:||no|
|Needs tests:||no||Patch needs improvement:||no|
Feature request: Make folder uploads (
<input type=file webkitdirectory>) possible in Django.
Here are some of my ideas regarding design and implementation.
Add a new
FolderUploadField that stores the path where the folder has been uploaded to, similar to how
FileUploadFields work. The object you deal with in business logic code is a
Folder object, the
QueryDict.getfolder method that returns a
(Uploaded)Folder object. Note that multi-file and folder uploads are not distinguishable in POST data, so we should have some sanity checks before constructing that object. At the very least we should check that all file paths have a common folder prefix:
["foo/bar.jpg", "foo/spam.txt"] is okay while
["foo/bar.jpg", "spam/eggs.txt"] is not.
Constructed from list of
File objects, it should at least have these two methods:
.walk()behaves similar to
.save(dest)saves the whole folder in its original structure under
Special handling is required to properly encode
Folder objects in the test client.