Re: Proposal for sending multiple files via XMLHttpRequest.send()

On Tue, Oct 20, 2009 at 4:31 AM, Anne van Kesteren <annevk@opera.com> wrote:

> On Tue, 20 Oct 2009 10:56:47 +0200, Darin Fisher <darin@chromium.org>
> wrote:
>
>> On Tue, Oct 20, 2009 at 1:37 AM, Anne van Kesteren <annevk@opera.com>
>> wrote:
>>
>>> I think for a lot of authors the easiest would be easiest if it was in
>>> the form of multipart/form-data as then they do not have to do anything
>>> special to get the data on the server.
>>>
>>
>> That does address the primary use case, but do you really think that we
>> should rule out the use case of custom encodings?
>>
>> (At least for Gecko and WebKit, it is really trivial to support the more
>> free-form interface since the underlying network layers speak in terms of
>> a list of strings and file references.)
>>
>
> I do not want to rule anything out, but a request I repeatedly hear is
> duplicating <form> functionality with XMLHttpRequest. Support for
> multipart/form-data furthermore is extremely widespread and resembles quite
> closely what is desired so it seems good to use it.
>
>
OK



> If eventually we get native support for octet-arrays and all we can at that
> point add the ability to XMLHttpRequest so you can send anything you want.
>
>
Hmm, OK



>
>  If we do go the more specific route, then it could look like this:
>>
>> var data = new FormData;
>> data.appendText("name1", "value");
>> data.appendFile("name2", fileData);
>> xhr.send(data);
>>
>> The UA could populate the filename attribute of the Content-Disposition
>> header based on the given fileRef.  Same goes for the Content-Type header.
>>
>> Hmm... this may indeed be a good way to go since I don't think the
>> proposed
>> FileData (
>> http://dev.w3.org/2006/webapi/FileUpload/publish/FileAPI.html#FileData-if
>> )
>> interface includes a name attribute.
>>
>
> This looks reasonable to me.
>
>
> I suppose we also want support passing File[Data] and FileList directly as
> I believe WebKit might have already added. Do you happen to know the
> implementation details?
>
>
WebKit presently supports sending File.  It does not support FileData yet.
 I'm not sure about supporting FileList.  If it were to be encoded using
multipart/form-data, then how would the form field names be chosen?  Would
they just be excluded from the encoding?

If we have something like the FormData type proposed above, then we wouldn't
need to support sending a FileList.  People could just iterate a FileList
and call appendFile for each element of the FileList.



>
> (I'm planning to wait with defining this until at least after TPAC. I
> expect more discussion to happen there and I also want to keep focus on the
> CSSOM before switching tasks again. It would be good to have most of the
> details before than though.)
>
>
>
OK

I'm interested in having a WebKit implementation for this soon.

-Darin



>
> --
> Anne van Kesteren
> http://annevankesteren.nl/
>

Received on Tuesday, 20 October 2009 16:28:12 UTC