我有点被困在这里。
我想存储一些特定于可以提供服务的用户的文件(作为嵌入对象)。这些文件位于已知位置,文件名将是已知的。如果我将这些文件存储在上下文中,例如$ {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>
所以,我的问题是 - 如果我将它们存储在上下文之外,我该如何为它们提供服务以便它们可以嵌入到页面中?
谢谢,
答案 0 :(得分:1)
我会自己回答这个问题。
解决方案是创建一个从onActivate返回StreamResponse的页面。然后,您可以使用该页面的链接作为资源,您可以将逻辑放在该页面中以从任何地方获取文件并将其作为StreamResponse返回。