** Description changed: 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 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: - 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> + 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> + ) )
-- 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 -- 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