zorba-coders team mailing list archive
-
zorba-coders team
-
Mailing list archive
-
Message #09374
[Bug 996793] [NEW] using http-client to execute an html form
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 ",
'Content-Disposition: form-data; name="file";',
' filename="test.jpg" ',
"Content-Type: multipart/form-data ",
" ",
base64:decode(file:read-binary ($filename))," ",
"----6d6f6d615f08 ",
'Content-Disposition: form-data; name="description" ',
" ",
"A test file ",
"----6d6f6d615f08 ",
'Content-Disposition: form-data; name="category" ',
" ",
"main ",
"----6d6f6d615f08-- "
)
}</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 ",
'Content-Disposition: form-data; name="file";',
' filename="test.jpg" ',
"Content-Type: multipart/form-data ",
" ",
base64:decode(file:read-binary ($filename))," ",
"----6d6f6d615f08 ",
'Content-Disposition: form-data; name="description" ',
" ",
"A test file ",
"----6d6f6d615f08 ",
'Content-Disposition: form-data; name="category" ',
" ",
"main ",
"----6d6f6d615f08-- "
)
}</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
Follow ups
References