2013-10-24 64 views
0

我有點卡在這裏。如何使用Tapestry5從外部上下文提供文件5

我想存儲一些特定於可以服務的用戶的文件(作爲嵌入對象)。這些文件位於已知位置,並且文件名將被識別。如果我將這些文件存儲在上下文中,例如$ {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> 

所以,我的問題是 - 如果我把它們存儲在背景之外,我怎麼能爲他們服務,讓他們可以嵌入在頁面上?

謝謝,

回答

1

我會回答這個我自己爲其他人尋找。

解決方案是創建一個從onActivate返回StreamResponse的頁面。然後,您可以使用指向該頁面的鏈接作爲資源,並且可以將該頁面中的邏輯放入並從任何位置獲取文件並將其作爲StreamResponse返回。

相關問題