0

我有点卡在这里。

我想存储一些特定于用户的文件,这些文件可以提供(作为嵌入式对象)。这些文件位于已知位置,并且文件名是已知的。如果我将这些文件存储在上下文中,例如 ${context:/files}/abc.pdf 那么我有一个可行的解决方案,但问题是如果他们知道地址,任何人都可以访问它们。

因此,我想将它们存储在例如:c:/tapestry5/userfiles/

但是,现在我不能再在我的 .tml 中为嵌入对象建立路径。之前的解决方案如下所示:

<object width="100%" height="750px" type="application/pdf" data="${context:/exercises}${fileUrlWithinContext}" id="pdf_content">
    <p>The PDF cannot be displayed, please update your browser.</p>
</object>

所以,我的问题是 - 如果我将它们存储在上下文之外,我如何为它们提供服务以便它们可以嵌入到页面中?

谢谢,

4

1 回答 1

1

我会自己为其他人回答这个问题。

解决方案是创建一个从 onActivate 返回 StreamResponse 的页面。然后,您可以使用指向该页面的链接作为资源,并且可以将逻辑放在该页面中以从任何位置获取文件并将其作为 StreamResponse 返回。

于 2013-10-30T21:02:18.973 回答