2013-06-05 54 views
2

我使用Java play 2生成PDF(使用外部資源)並將它們存儲在我的項目的根目錄下的pdfs /文件夾中。用Java Play顯示PDF! 2框架

現在,我不是很擅長java,我不能設法顯示PDF而不把它放在公共文件夾中(這不可能是因爲它不安全)。所以我的問題是:

如何在客戶端瀏覽器中顯示PDF文件而不將其放在公共文件夾中?

回答

2

找到了解決辦法: return ok(new FileInputStream("pdfs/doc.pdf")).as("application/pdf");

+0

你不應該將它們存儲在文件系統,但直接發送輸出流。 –

+0

我不得不。無論如何,我需要將PDF存儲在服務器上,這是一種需要。 – user2099857

+0

這就是我所尋找的。非常感謝@ user2099857 – greenhorn

3

只需發送二進制表示,並指定PDF內容類型:

public static Result createPDF() { 
    byte[] pdfAsBinary = ... 
    response().setContentType("application/pdf"); 
    return ok(pdfAsBinary); 
} 
+0

這件事情是我不知道如何獲取PDF文件...它在/pdfs/doc.pdf中。 我嘗試使用'controllers.Assets.at(「pdfs」,「doc.pdf」);'但它返回一個動作類型,我不知道該怎麼處理它 – user2099857