[webkit-dev] Support sending multiple files via XMLHttpRequest.send()

Maciej Stachowiak mjs at apple.com
Tue Sep 8 23:11:32 PDT 2009


On Sep 8, 2009, at 10:49 PM, Darin Fisher wrote:

>
>
> On Tue, Sep 8, 2009 at 6:22 PM, Maciej Stachowiak <mjs at apple.com>  
> wrote:
>
> On Sep 8, 2009, at 6:16 PM, Jian Li wrote:
>
>> In WebKit, XMLHttpRequest.send() supports sending single file. It  
>> would be better if we can support sending multiple files, like  
>> FileList (see bug 25923).
>>
>> In addition, XMLHttpRequest.send() only sends the raw content of  
>> the file, without including the multipart boundary separators (see  
>> bug 26979).
>>
>> To resolve these issues, we can enhance XMLHttpRequest.send() to  
>> support a FileList object and add multipart boundary separators  
>> support.
>>
>> Or, the other simpler way (thanks for suggestion from Darin Fisher)  
>> is to extend XMLHttpRequest.send() to take an array of items. Each  
>> of item could either be a string or a file reference. The web  
>> application is responsible to generate the miultipart enevelop like  
>> the following:
>>
>>     var payload = new Array;
>>     payload.push(header1);
>>     payload.push(file1);
>>     payload.push(footer1);
>>     ...
>>     xhr.send(payload);
>>
>> How do you guys think about these approaches?
>
> I'd suggest proposing these ideas to the W3C Web Apps Working Group.  
> I am sure people there will have opinions. I'd like our approach  
> here to be aligned with other browsers.
>
> Personally, I think the ability to mix strings and files is most  
> useful, thus I like the array approach. However, it would require  
> defining what happens to array elements that are not either a string  
> or a File object.
>
> Wouldn't an implicit toString be appropriate?  We may even wish to  
> allow the array to include Document references for completeness.

Implicit toString is not the right behavior for File. I'm wondering if  
there are other current or future types for which it is not  
appropriate. If we did allow Documents or other DOM nodes, then we  
would probably want to serialize to markup instead of using toString,  
which would just result in "[object Document]". Canvas ImageData is  
another potential candidate for uploading, since uploading the image  
as binary data is probably more efficient than doing so as a data:  
URL. There's lots of possibilities here - probably best to discuss  
further on public-webapps.

Regards,
Maciej

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-dev/attachments/20090908/80a59a2c/attachment.html>


More information about the webkit-dev mailing list