- From: Florian Bösch <pyalot@gmail.com>
- Date: Sun, 21 Feb 2016 12:32:28 +0100
- To: Webapps WG <public-webapps@w3.org>
- Message-ID: <CAOK8ODjLOxzx6ur27ZtNkwx0BAAcyfJqA61zhxes=kShQX0ONA@mail.gmail.com>
These are the existing standardized ways to deal with files locally.
*File API*
URL: https://www.w3.org/TR/FileAPI/
Status: Active
Support: Broad, partial, http://caniuse.com/#feat=fileapi
Covers Blobs (data/mime bags), Blob URLs, Files (name, size, modified),
FileLists, FileReader (reading in blobs and files in different formats).
*HTML5 File Input*
URL:
https://html.spec.whatwg.org/multipage/forms.html#concept-input-type-file-selected
Status: Active
Support: probably good, not tracked.
Allows to get a FileList from an input element
*HTML5 anchor download (and name)*
URL:
Status: Active
Support: All except Safari
Allows to pass a blob URL to an anchor element for download.
*What this covers*
- Read one or many files in their entirety in one go (in python that
would be open('foobar').read())
- Save a completed binary string in its entirety in one go to the
download folder (no overwrite)
- Listen to file modifications
*What is missing*
- Read a file incrementally (and with the ability to abort)
- Save a file incrementally (and with the ability to abort)
- Overwrite a file (either previously saved or opened)
- Save as pickable destination
- Save many files to a user pickable folder
- Working directory
*Rationales for the missing parts*
It is difficult for web based productivity applications to compete with
native applications in terms of UX/convenience/productivity without the
missing parts.
*Incremental reading*: When dealing with large files that are undesirable
to load into JS memory whole. Current problem is: exceeding JS memory
and/or large delays.
*Incremental writing*: When dealing with writing large files whose content
is undesirable to keep in JS memory whole. When dealing with
computationally intensive data to produce. Current problem is: exceeding JS
memory and/or large delays and/or loosing data, also bad UX (click "prepare
file", click "save").
*Overwriting a file*: When working on content that should be saved to disk
overwriting the existing load/save location. Current problem: all files in
download folder named myfile.txt, myfile (1).txt, myfile (2).txt, myfile
(3).txt, myfile (N).txt etc.
MS Office
[image: Inline image 2]
Notepad
[image: Inline image 3]
Blender
[image: Inline image 4]
*Save as pickable destination*: When wanting to write a file to a
destination that is somewhere else than the download folder. Current
problem is: #1 save #2 go to downloads #3 move file to where it needs to go
#4 repeat
MS Office
*[image: Inline image 5]*
Notepad:
*[image: Inline image 6]*
Blender:
*[image: Inline image 7]*
*Save many files to a user pickable folder*: Some formats such as Collada
or OBJ refer external files (images). For file collection export/save like
that it is required to write many files in a folder. Current problem: not
possible at all.
*Working directory*: When saving/opening a file in one webapp, and then
using a different webapp. It is hard on the user to always jump around
between folders to open/save a file.
*Questions*
1. There have been two now abandoned standards that covered some of this
functionality (https://www.w3.org/TR/file-system-api/ and
https://www.w3.org/TR/file-writer-api/). What are the successor
standards to these?
2. If there are no successors, why not?
3. Are the rationales for the missing parts clear and uncontroversial?
Attachments
- image/png attachment: image.png
- image/png attachment: 02-image.png
- image/png attachment: 03-image.png
- image/png attachment: 04-image.png
- image/png attachment: 05-image.png
- image/png attachment: 06-image.png
Received on Sunday, 21 February 2016 11:32:59 UTC