[webkit-dev] Directory upload experimental feature

John Gregg johnnyg at google.com
Tue Jun 1 15:09:00 PDT 2010


My proposal for that is that all the files would be listed in the form
submission the same way as if it were a <input type="file" multiple>, but in
the Content-Disposition header, the filename component would contain the
path information.

One alternative idea would be add a "path" component to the
Content-Disposition header alongside the filename which remains unchanged,
but I think that would be a much more difficult approach.  Other
alternatives?

Example follows.

 -John

If you are have these files
/home/John/photos/vacation/1.jpeg
/home/John/photos/vacation/2.jpeg
/home/John/photos/conference/1.jpeg

and choose "photos" from the directory picker, you'd end up with
input.files[0].name = "1.jpeg"
input.files[0].path = "photos/vacation/1.jpeg"
input.files[1].name = "2.jpeg"
input.files[1].path = "photos/vacation/2.jpeg"
input.files[2].name = "1.jpeg"
input.files[2].path = "photos/conference/1.jpeg"

Your POST would look like
Content-type: multipart/form-data; boundary=----WebKitFormBoundaryFoo

----WebKitFormBoundaryFoo
Content-Disposition: form-data; name="input";
filename="photos/vacation/1.jpeg"
Content-Type: image/jpeg

<contents>

----WebKitFormBoundaryFoo
Content-Disposition: form-data; name="input";
filename="photos/vacation/2.jpeg"
Content-Type: image/jpeg

<contents>

----WebKitFormBoundaryFoo
Content-Disposition: form-data; name="input";
filename="photos/conference/1.jpeg"
Content-Type: image/jpeg

<contents>


On Sat, May 29, 2010 at 10:22 AM, Sam Weinig <sam.weinig at gmail.com> wrote:

> How will the directory structure and all the files therein be represented
> in the form submission?
>
> -Sam
>
> On Fri, May 28, 2010 at 3:17 PM, John Gregg <johnnyg at google.com> wrote:
>
>> Hi WebKit,
>>
>> I recently proposed adding directory upload support to HTML via a new
>> <input> attribute to whatwg@, and the discussion arrived at "try it out".
>>  Having written some code I think I have something that works pretty well,
>> and I'd like to land it on an experimental basis in WebKit, but want to
>> reach out early before trying to put any code in the tree.  The plan that
>> comes to mind is a new ENABLE_DIRECTORY_UPLOAD flag, but I'm completely open
>> to other options.
>>
>> Background (cf. the whatwg thread
>> http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2010-April/025764.html
>> ):
>>  - The use case for this is a photo album or file manager web application,
>> which wants the user to easily choose an entire directory to recursively
>> upload, while preserving the sub-directory structure.
>>  - The reason for the new attribute is to signal the UA to show a native
>> folder-picker rather than a file-picker, which on most OSs are two distinct
>> dialogs.
>>
>> The approach I'm using has 2 parts and is a small amount of WebCore code
>> (about 200 lines).
>>  - Extend HTMLInputElement to support the directory attribute, which is
>> passed up via FileChooser allowing the UA to display a folder-picker.  UA
>> enumerates all the files and returns them in the normal way.
>>  - Extend File to have a File.path property, which contains the path
>> information starting from the chosen directory as the root.
>>  HTMLInputElement is responsible for generating these values from the list
>> of files when the directory attribute is set.
>>
>> Thoughts?
>>
>> Thanks,
>>  -John
>>
>>
>>
>> _______________________________________________
>> webkit-dev mailing list
>> webkit-dev at lists.webkit.org
>> http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-dev/attachments/20100601/be2564f8/attachment.html>


More information about the webkit-dev mailing list