Public bug reported:

I was implementing some XQuery code for uploading a file and some form
data. Fiddling with Multipart request and the http-client wasn't really
usable, the http-client added some extra multipart content-type header
and didn't work well. In the end I was implementing multipart requests
manually:

<http:body media-type="multipart/form-data; boundary=--6d6f6d615f08" 
           method="binary">{
      concat (
        "----6d6f6d615f08&#13;&#10;",
        'Content-Disposition: form-data; name="file";',
        ' filename="test.jpg"&#13;&#10;',
        "Content-Type: multipart/form-data&#13;&#10;",
        "&#13;&#10;",
        base64:decode(file:read-binary ($filename)),"&#13;&#10;",
        "----6d6f6d615f08&#13;&#10;",
        'Content-Disposition: form-data; name="description"&#13;&#10;',
        "&#13;&#10;",
        "A test file&#13;&#10;",
        "----6d6f6d615f08&#13;&#10;",
        'Content-Disposition: form-data; name="category"&#13;&#10;',
        "&#13;&#10;",
        "main&#13;&#10;",
        "----6d6f6d615f08--&#13;&#10;"
      )
}</http:body>

As this is not usable for common users, I propose 2 changes:

1. the multipart implementation of the http client can be done in XQuery only 
(see example above) which would make this implementation more stable
2. a helper module where one just passes an html form and gets an http request 
for execution, for example:

http-client:send-request(
  html-forms:create-request(
    <form action="http://www.example.com/upload"; 
          method="post" 
          enctype="multipart/form-data">
       <input name="file" type="file" value="{$filename}" />
       <input name="description" type="text" value="A test file">
       <input name="category" type="text" value="main">
    </form>
  )
)

** Affects: zorba
     Importance: Medium
     Assignee: Matthias Brantner (matthias-brantner)
         Status: New


** Tags: new-functionality-requirement usability

** Tags added: new-functionality-requirement

-- 
You received this bug notification because you are a member of Zorba
Coders, which is the registrant for Zorba.
https://bugs.launchpad.net/bugs/996793

Title:
  using http-client to execute an html form

Status in Zorba - The XQuery Processor:
  New

Bug description:
  I was implementing some XQuery code for uploading a file and some form
  data. Fiddling with Multipart request and the http-client wasn't
  really usable, the http-client added some extra multipart content-type
  header and didn't work well. In the end I was implementing multipart
  requests manually:

  <http:body media-type="multipart/form-data; boundary=--6d6f6d615f08" 
             method="binary">{
        concat (
          "----6d6f6d615f08&#13;&#10;",
          'Content-Disposition: form-data; name="file";',
          ' filename="test.jpg"&#13;&#10;',
          "Content-Type: multipart/form-data&#13;&#10;",
          "&#13;&#10;",
          base64:decode(file:read-binary ($filename)),"&#13;&#10;",
          "----6d6f6d615f08&#13;&#10;",
          'Content-Disposition: form-data; name="description"&#13;&#10;',
          "&#13;&#10;",
          "A test file&#13;&#10;",
          "----6d6f6d615f08&#13;&#10;",
          'Content-Disposition: form-data; name="category"&#13;&#10;',
          "&#13;&#10;",
          "main&#13;&#10;",
          "----6d6f6d615f08--&#13;&#10;"
        )
  }</http:body>

  As this is not usable for common users, I propose 2 changes:

  1. the multipart implementation of the http client can be done in XQuery only 
(see example above) which would make this implementation more stable
  2. a helper module where one just passes an html form and gets an http 
request for execution, for example:

  http-client:send-request(
    html-forms:create-request(
      <form action="http://www.example.com/upload"; 
            method="post" 
            enctype="multipart/form-data">
         <input name="file" type="file" value="{$filename}" />
         <input name="description" type="text" value="A test file">
         <input name="category" type="text" value="main">
      </form>
    )
  )

To manage notifications about this bug go to:
https://bugs.launchpad.net/zorba/+bug/996793/+subscriptions

-- 
Mailing list: https://launchpad.net/~zorba-coders
Post to     : zorba-coders@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zorba-coders
More help   : https://help.launchpad.net/ListHelp

Reply via email to