- From: Sam Weinig <weinig@apple.com>
- Date: Thu, 17 Jul 2008 13:46:10 -0700
- To: Aaron Boodman <aa@google.com>
- Cc: Web Applications Working Group WG <public-webapps@w3.org>
Not exactly. This Gears proposal introduces an extra level of
indirection with Blobs that this proposal does not. This can be seen
as a subset, that Blobs could build on in the future, and in fact is
entirely compatible with the Gears proposal.
-Sam
On Jul 17, 2008, at 1:23 PM, Aaron Boodman wrote:
>
> Is the only difference from the Gears proposal the name of the object
> ("File") and the lack of reading APIs initially?
>
> - a
>
> On Thu, Jul 17, 2008 at 1:14 PM, Sam Weinig <weinig@apple.com> wrote:
>> We would like to propose standardizing a way of using
>> XMLHttpRequest to send
>> files to the server. We propose using a similar (and compatible)
>> API to the
>> Blob based API proposed by Google Gears
>> (http://code.google.com/p/gears/wiki/BlobWebAPIPropsal), but
>> instead of
>> sending Blob objects, the File objects would be sent. This will
>> allow the
>> common act of uploading files, now relegated to form submissions
>> with an
>> <input type="file">, to have access to ProgressEvents and the
>> ability to
>> abort mid way through.
>> As with the Blob API, this is reuses the File and FileList interfaces
>> exposed by Mozilla
>> (see http://developer.mozilla.org/en/docs/nsIDOMFile and http://developer.mozilla.org/en/docs/nsIDOMFileList)
>> in a compatible. We are not proposing a specific way to get the
>> contents of
>> the files, but that would be a natural future extension. Other
>> potential
>> future extensions would be access to the icon associated with the
>> file.
>>
>> Objects implementing the HTMLInputElement interface must also
>> implement the
>> FileHTMLInputElement interface.
>> interface FileHTMLInputElement {
>> readonly attribute FileList files;
>> };
>>
>> The files attribute must return a FileList containing all the files
>> currently selected. This list is live, and therefore updates if
>> contents of
>> the input element change.
>> interface FileList {
>> readonly attribute unsigned long length
>> [IndexGetter] File item(in unsigned long index);
>> };
>>
>> Each item in the FileList is File, which is a token representation
>> of file
>> on the system. The fileName attribute returns just the name and
>> not the
>> complete path. The fileSize attribute returns the size of the file
>> in
>> bytes.
>> interface File {
>> readonly attribute DOMString fileName;
>> readonly attribute unsigned long long fileSize;
>> };
>>
>> Sending a File can be accomplished with an extension to
>> XMLHttpRequest that
>> overrides the existing send() method.
>> Objects implementing the XMLHttpRequest interface must also implement
>> the FileXMLHttpRequest interface.
>> interface FileXMLHttpRequest {
>> void send(File data);
>> };
>>
>>
>> -Sam Weinig
>>
>
Received on Thursday, 17 July 2008 20:46:50 UTC