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

Ojan Vafai ojan at chromium.org
Thu Apr 22 15:21:41 PDT 2010


Yes.

On Thu, Apr 22, 2010 at 3:15 PM, John Gregg <johnnyg at google.com> wrote:

> So are you suggesting an input element that accepts directories
> dragged onto it, but has no way of choosing a directory through a
> system dialog?
>
>  -John
>
> On Thu, Apr 22, 2010 at 3:11 PM, Ojan Vafai <ojan at chromium.org> wrote:
> > But there is already a default UI that lets you select a folder, a file
> or
> > both (drag-drop). I don't see why this forces the UA to do anything. Just
> > because you can select both folders and files doesn't mean the UA needs
> to
> > expose extra UI on top of drag-drop to let you do so. Again, no more so
> than
> > they already have to expose extra UI to deal with multiple inputs.
> > Ojan
> >
> > On Tue, Apr 6, 2010 at 2:28 PM, John Gregg <johnnyg at google.com> 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
> >>>>
> >>>
> >>
> >
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.whatwg.org/pipermail/whatwg-whatwg.org/attachments/20100422/ea396dec/attachment-0002.htm>


More information about the whatwg mailing list