On Apr 19, 2009, at 7:01 AM, Jan Lehnardt wrote:


On 19 Apr 2009, at 05:16, Oliver Boermans wrote:

...

Excellent summary, thanks! We're open to enable the API handlers for
pure HTML forms with more features, if you can line out what you would
want to have.

Moving to dev@

Cheers
Jan
--



I haven't had the time I would like to research this adequately. I thought it would good to keep the discussion going, so please forgive any obvious blunders.

Feature: End point for HTML form submissions for file uploading
Use case: Uploading files from browser when their is not intermediate layer.

Info that must be encoded somewhere:

database URL
docID
rev (for modifications)
content type of attachment
content of attachment
attachment name


Possible locations:

database URL: That has to go in the action URL for the form
Content of attachment: In body of POST request per HTML spec
docID: Could be encoded in either the action URL, content of a field (possibly hidden), or field name.
rev: Same options
Content type: The POST request will have a content-type from the browser in the header for the file content, however the form author may want to allow the user to explicitly specify a content type. Attachment name: Name of input type="file" field, names of files selected, content of hidden field

Considerations:

Should we provide a mechanism to change the body of the document simultaneously. For example, if there is a field "body", it would be interpreted as JSON and replace the current document contents.

A file input control can select and upload multiple files. If attachment name is based on the field name, likely would need to add an index to support the case when there are multiple files selected.

The local file names may be missing from the post body, might not be unique and might be approximations. I'd avoid basing the attachment name off of them, thought it would be good if they could be preserved. Any chance that they could be added to the _attachments metadata?


My current though is something like:

Action URL: http//server:5984/database/_form?multi=true|false

Special field names for docID, rev and body

If multi=true, multiple selections of files would be supported and attachments would be named from the field name + [index] If multi=false, if multiple files were selected, the request would be rejected. Otherwise attachment would be named after the input field For every file input control, if there is another field with that name + "content-type", the value of that field would be used for the content type. Otherwise, the content type provided by the browser would be used.


Ideally, the local names of the uploaded files would be preserved in the metadata for the attachment.

Reply via email to