2012-12-12 69 views
0

我必須創建(不上傳!),存儲並能夠使用Play 2.0應用程序下載PDF文件。我如何在Play中做到這一點?我正在考慮將文件存儲爲MySQL數據庫中的blob,但在這種情況下是否有機會在不使用文件系統的情況下創建PDF文件?第二個問題是如何實現文件下載?PlayFramework 2.0文件存儲

回答

2

在很普遍的情況下,將文件存儲在數據庫中通常比較昂貴並且存在一些缺點。 (查看原因:Storing Images in DB - Yea or Nay?

另一方面,它也取決於文件是否應該受到保護,或者它們是某種公共文檔。

解決方案有兩種考慮:

  1. ,如果你不擔心安全問題,你可以創建文件,並保存在某個文件夾,不是,你可以使用一些HTTP服務器服務,並在你的數據庫只保留路徑。這是個好主意,特別是通常服務器只是爲了提供文件而創建的,所以你不需要重新發明輪子。
  2. 如果文件受到限制,還將它們存儲在文件系統中,無論如何都放在某個非公用文件夾中,那麼您可以使用如此簡單的一段代碼返回File作爲操作的Result,僅限於經過身份驗證/授權的訪問者)

    public static Result serveFile(String absouteFilePath){ 
        //some authorization... 
        return ok(new File(absouteFilePath)); 
    } 
    
+0

在文件系統及其數據庫的元數據存儲文件解決。謝謝! – Jolene