- From: Michael A. Puls II <shadow2531@gmail.com>
- Date: Tue, 18 Aug 2009 14:54:36 -0400
- To: arun@mozilla.com
- Cc: public-webapps@w3.org
On Tue, 18 Aug 2009 14:38:07 -0400, Arun Ranganathan <arun@mozilla.com> wrote: > Michael, > > I'd like to distinguish between file:// and filedata: which is what the > current FileAPI proposes. While file:// behavior is undefined and pretty > vague across user agents, filedata: is spec'd to be used within web > applications, has a lifetime, an origin policy, and does return a subset > of HTTP status codes (which are not 405 if requested with GET). I'd say > that file:// is convenient for user agents to surface local files for > users, but filedata: could be used within web applications. In > particular: > >> >> 2. For file:// access, simulate the appropriate HTTP status code for >> the result so that this.status and this.statusText can be used properly. >> >> 3. Don't have open() throw for "file not found" and use 404 for >> this.status instead. >> >> 4. If file:// access isn't implemented (like in IE), don't have open() >> throw. Instead, make this.status be 501. >> >> 5. If the request URI result in too long of a path, use status code 414. >> >> 6. If the request URI points to a certain type of file the *browser* >> doesn't want to allow access to (maybe an .exe), use status code 415. >> >> 7. If a method besides "GET" is used for open(), don't throw and use >> status code 405. >> > These behaviors match what filedata: might do (but not exactly as you > say so above). > http://dev.w3.org/2006/webapi/FileUpload/publish/FileAPI.html#filedataurl-if > > There are a few conditions that are not properly specified currently in > the editor's draft, but I'd like to remedy that soon :-) > > I think that the use cases you have for file:// being a first class > citizen of web (in terms of use across all request mechanisms) could be > applied to filedata: instead. Thanks. Using filedata: and the FileAPI instead of file: with xhr, seems like it'd work. However, how do you get a fileData object without <input type="file">? Would you have to shoehorn it like the following? function getLocalFileData(fileURI) { var input = document.createElement("input"); input.type = "file" input.value = fileURI; // (relative or absolute) to local file return input.fileList.files[0]; } -- Michael
Received on Tuesday, 18 August 2009 18:55:21 UTC