0

我必须创建(而不是上传!)、存储并能够使用 Play 2.0 应用程序下载 PDF 文件。我怎么能在 Play 中做到这一点?我正在考虑将文件存储为 MySQL DB 中的 blob,但在这种情况下,是否有机会在不使用文件系统的情况下创建 PDF 文件?第二个问题是如何实现文件下载?

4

1 回答 1

2

一般来说,在数据库中存储文件通常更昂贵并且有一些缺点。(检查原因:在 DB 中存储图像 - 是还是不是?

另一方面,它还取决于文件是否应该受到保护,或者它们是某种公共文档。

有两种解决方案需要考虑:

  1. 如果您不担心安全性,您可以创建文件并保存在某个文件夹中,然后,您可以使用一些 http 服务器来提供它,并且在您的数据库中只保留路径。这是个好主意,尤其是服务器通常只是为提供文件而创建的,因此您无需重新发明轮子。
  2. 如果文件受到限制,也将它们存储在文件系统中,无论如何都存储在一些非公共文件夹中,那么您可以只为经过身份验证/授权的访问者返回 aFile作为Result操作,使用这样简单的代码(Java)

    public static Result serveFile(String absouteFilePath){
        //some authorization...
        return ok(new File(absouteFilePath));
    }
    
于 2012-12-12T16:20:04.813 回答