Curl 多部分/表单数据提交的XForms实例的结构

Curl 多部分/表单数据提交的XForms实例的结构,curl,solr,orbeon,xforms,Curl,Solr,Orbeon,Xforms,我在弄清楚如何通过带有多部分/表单数据序列化的XForms提交来提交二进制文件时遇到了一些问题。在某些背景下,我尝试使用将文档文件(例如PDF)发布到ApacheSolr中。我能够在命令行上成功地使用CURL进行发布,但在XForms引擎中发布时遇到了困难(具体来说,我使用的是Orbeon) 以下是我的意见: <xforms:submission id="extract-document" action="{instance('config')/solr}update/e

我在弄清楚如何通过带有多部分/表单数据序列化的XForms提交来提交二进制文件时遇到了一些问题。在某些背景下,我尝试使用将文档文件(例如PDF)发布到ApacheSolr中。我能够在命令行上成功地使用CURL进行发布,但在XForms引擎中发布时遇到了困难(具体来说,我使用的是Orbeon)

以下是我的意见:

<xforms:submission 
    id="extract-document"
    action="{instance('config')/solr}update/extract?literal.id={instance('doc')/mods:mods/mods:recordInfo/mods:recordIdentifier}&amp;fmap.content=text"
    ref="instance('form-data')"
    replace="none" 
    method="post" 
    serialization="multipart/form-data">

我的表单数据实例是:

<xforms:instance id="form-data">
    <formData>
        <myFile
            xsi:type="xs:anyURI" 
            filename="file.pdf" 
            size="2957563" 
            mediatype="application/pdf">file:/path/to/file.pdf</myFile>
    </formData>
</xforms:instance>

文件:/path/to/file.pdf
我已尝试从myFile元素中排除属性,但提交失败。我只是不知道如何构造表单数据实例

谢谢你的帮助


2017年8月8日更新:xforms:submission中通过多部分/表单数据发布的问题从未真正得到解决。我试图在将表单数据发布到web服务时附加一个XML文件,但根据W3C的web服务规范,它没有被附加

我创建了一个失败的全功能测试,产生了一个文件尚未附加的响应,即使
输入已正确绑定到xforms:upload控件。我可以验证规范的第一部分(“选择包含恰好有一个文本节点子元素的每个元素”)在将身份验证信息传递给web服务时是否起作用,因为在xforms submit error上的事件('response-body')中,我没有收到关于缺少用户名或密码的错误

要点如下:


XML文件应该根据XForms规范附加(如果我做的一切都正确的话),但它似乎不起作用。我正在测试Orbeon 2017.1,但它在2015年后期的版本中也不起作用。

这是Orbeon Forms吗?是的。我不确定是否有特定于Orbeon的解决方案。可以使用
application/octet-stream
将其序列化为字节。但这与
多部分/表单数据
不同。我无法使用application/octet-stream将数据放入Solr,但这让我尝试使用base64对二进制文件进行编码并将其发布。我可以发布它们,但无法将它们解码回来。最终我发现解决方案是使用stream.url请求参数,如中的示例。这些参数在ExtractingRequestHandler的Solr wiki中没有很好的文档记录