如何使用 Orbeon XForms 将文件本地保存在磁盘上并可供下载?

How can I save a file using Orbeon XForms locally on the disk and make it available for download?

我对 Orbeon/XForms 的语法有点吃力。我正在尝试创建一个表单,您可以从中上传文件并将其保存在本地磁盘上,然后可供下载。或者更好的是,显示磁盘目录的内容并使文件可下载。

我们的想法是上传 xml 文件,然后后台进程将它们转换为不同的格式并提供下载。

到目前为止,我有这个:

<xf:upload ref=".">
  <xf:filename>file:////home/me/data-in/*.xml</xf:filename>
  <xf:mediatype>text/xml</xf:mediatype>
</xf:upload>
<br/>
<xf:output ref=".">
   <xf:label>File: </xf:label>
 </xf:output>

问题是文件没有存储在我想要保存的位置 (file:////home/me/data-in/*.xml),而是 /home/me/apache-tomcat-7 .0.57/temp 并使用不同的名称。

任何人都可以给我一些想法和例子吗?

谢谢!

我假设您指的 "disk" 是服务器端,而不是用户端。

无法选择位置:所有上传的文件都是临时文件。通常,XForms 引擎无法直接访问文件系统。

这就是说,如果您只想执行 upload/download,请尝试使用文件附件控件,例如 here

如果你想使用它"by hand":

<fr:attachment ref="my-data" xmlns:fr="http://orbeon.org/oxf/xml/form-runner">
    <xf:label>Attached file</xf:label>
     <!-- Optional -->
    <xf:filename ref="@filename"/>
    <xf:mediatype ref="@mediatype"/>
    <xxf:size ref="@size"/>
</fr:attachment>

本控件为您提供内置下载link。