Better support for folder uploads
|Reported by:||jonash||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 File equivalent.
Add a 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 os.walk but yields File objects
- .save(dest) saves the whole folder in its original structure under dest.
Special handling is required to properly encode Folder objects in the test client.
Change History (2)
comment:1 Changed 3 years ago by aaugustin
- Component changed from Uncategorized to Forms
- Needs documentation unset
- Needs tests unset
- Patch needs improvement unset
- Triage Stage changed from Unreviewed to Someday/Maybe