[whatwg] Directory upload via <input type="file" directory>

Diogo Resende dresende at thinkdigital.pt
Wed Apr 7 02:46:41 PDT 2010

I don't understand. I think in a "Choose File" Dialog you can pick
multiple items. And as far as I know folders are mixed with files on the
list (that's how you navigate between folders on this dialog).

Why not choose multiple files/folders? Security doesn't seem to be a
concern. I can make a mess with only one folder.

On Tue, 2010-04-06 at 14:28 -0700, John Gregg wrote:
> The most relevant issue is that in Windows/Mac/Linux, there are no
> system dialogs that let the user select either a folder or a file.
>  They each have separate "choose a file" and "choose a folder"
> dialogs.  I think the logical reason for that is that when selecting a
> file, clicking a directory means to enter that directory and select
> from its files, not to choose that directory as the result of
> selection.
> Thus we would force UAs to reinvent file-picker interfaces in order to
> deal with an input element that allows both folders and files.
>  -John
> On Tue, Apr 6, 2010 at 2:18 PM, Ojan Vafai <ojan at chromium.org> wrote:
>         It's unfortunate that users need to distinguish between single
>         and multiple file inputs. That's not something we can change
>         at this point. The web started with single file inputs. We can
>         avoid adding a third type of file input they need to
>         understand though.
>         Also, what should happen if you drag files and folders onto a
>         "multiple" or "directory" input? Just drop the ones that are
>         of the wrong type? I cannot imagine users making sense of
>         that.
>         It's not clear to me from your original email what issues you
>         encountered during implementation that led to this proposal.
>         Is it just the leaf name conflict issue? I agree that's a
>         problem, but maybe there's a different solution to that?
>         Ojan
>         On Tue, Apr 6, 2010 at 12:53 PM, John Gregg
>         <johnnyg at google.com> wrote:
>                 That's a fair question, but how is it clear today
>                 whether an input can accept multiple files vs. a
>                 single file using drag-and-drop?  Currently if I drag
>                 multiple files onto an input that doesn't have
>                 'multiple', I get only the first one.  (In Chrome.)
>                 Some good default text from the UA, like "Choose
>                 folder..." instead of "Choose file...", would go far
>                 to solve that, I think.
>                  -John
>                 On Tue, Apr 6, 2010 at 12:38 PM, Ojan Vafai
>                 <ojan at chromium.org> wrote:
>                         What about drag-drop? I should be able to drag
>                         a directory, a file, or a list of files onto
>                         an input, no? If not, how is this distinction
>                         shown to users? How will it be clear to users
>                         when they can do one or the other?
>                         Ojan
>                         On Thu, Apr 1, 2010 at 3:53 PM, John Gregg
>                         <johnnyg at google.com> wrote:
>                                 For context, Ian Fette started a
>                                 thread about uploading directories of
>                                 files in
>                                 December: http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2009-December/024455.html 
>                                 At that time, it was thought that
>                                 directory upload could be implemented
>                                 by a UA in response to a <input
>                                 type="file" multiple> tag using
>                                 different UI only, and modifying the
>                                 FileAPI spec to allow path information
>                                 in the form
>                                 input.files[0].name="1.jpg"
>                                 input.files[0].path="a"
>                                 input.files[1].name="2.jpg"
>                                 input.files[1].path="a/b"
>                                 input.files[2].name="3.jpg"
>                                 input.files[2].path="a/c"
>                                 I've started developing a prototype of
>                                 this in WebKit/Chromium.  Based on
>                                 what I've encountered so far, I would
>                                 like to propose adding directory
>                                 upload functionality using an explicit
>                                 new 'directory' attribute on the file
>                                 input element. 
>                                 The existing behavior of <input
>                                 type="file" multiple> would not
>                                 change, but when processing <input
>                                 type="file" directory>, the UA would
>                                 display a directory selection UI and
>                                 store the path information, and not
>                                 allow individual files to be
>                                 selected.  It would allow multiple
>                                 files to have the same leaf name
>                                 (.name attribute), as long as the
>                                 paths were different.  The path
>                                 attributes would include the name of
>                                 the chosen directory 
>                                 This would be preferable for several
>                                 reasons:
>                                  - Most built-in file system UI on
>                                 major platforms (Windows/Mac/Linux)
>                                 have distinct dialogs for choosing
>                                 files and choosing directories.
>                                  Allowing the UA to use these directly
>                                 makes sense rather than creating
>                                 hybrids.
>                                  - Avoiding "leaf name" conflicts in a
>                                 directory tree is not feasible in many
>                                 applications -- asking a user to
>                                 ensure unique photo names in a large
>                                 set of albums before uploading would
>                                 fail to meet that use case.  Therefore
>                                 HTML documents should know in advance
>                                 whether the path information will be
>                                 relevant in the eventual storage of
>                                 the files.  Sites currently using
>                                 <input type="file" multiple> would
>                                 have compatibility problems with an
>                                 implementation which allowed
>                                 conflicting file names along different
>                                 paths.
>                                 What are your thoughts about adding
>                                 the 'directory' attribute?
>                                 Thanks,
>                                  -John

Diogo Resende <dresende at thinkdigital.pt>

More information about the whatwg mailing list