Jakarta ee 在JavaEE应用程序中存储.pdf文件

Jakarta ee 在JavaEE应用程序中存储.pdf文件,jakarta-ee,file-upload,jsf-2,file-io,glassfish,Jakarta Ee,File Upload,Jsf 2,File Io,Glassfish,我正在开发一个JavaEE应用程序(UI:Jsf,数据库:Mysql,App.server:Glassfish,以及用于生成pdf的iText) 在其中一个页面上,单击“生成”按钮后,将创建一个pdf文件。 此文件将保存在某个位置。 在另一个页面上,用户可以加载此文件 在我搜索之后,解决方案是: 存储pdf文件的标准解决方案是什么?(速度、安全问题等) 在数据库(BLOB类型)中,还是在文件系统上 谢谢大家! 如果您只需要在用户导航到下一页时存储它,我会使用临时文件,或者在会话中将文件保存在内存

我正在开发一个JavaEE应用程序(UI:Jsf,数据库:Mysql,App.server:Glassfish,以及用于生成pdf的iText)

在其中一个页面上,单击“生成”按钮后,将创建一个pdf文件。 此文件将保存在某个位置。 在另一个页面上,用户可以加载此文件

在我搜索之后,解决方案是: 存储pdf文件的标准解决方案是什么?(速度、安全问题等) 在数据库(BLOB类型)中,还是在文件系统上


谢谢大家!

如果您只需要在用户导航到下一页时存储它,我会使用临时文件,或者在会话中将文件保存在内存中

如果您想将PDF存储更长时间,最简单的方法是在DB中使用BLOB。但是,这可能会导致操作中出现问题,因为数据库可能(取决于PDF的数量和大小)变得相当大。要避免这种情况,请将其存储在文件系统中。退房


从安全性的角度来看,使用任何解决方案都不会产生很大的影响。如果有人访问了您的磁盘,那么读取您的DB文件和其他文件之间没有太大区别。

谢谢!我按照您的建议检查了库。如果您需要存储、检索和删除作为事务或事务声音的一部分,那么将PDF存储在DB中是一个不错的选择。除非您有一个JTA适配器和一个支持此功能的连接器,否则使用文件系统在事务上是不合理的。这增加了复杂性,但没有什么好处。你可以试试上面提到的XADISK。但是,它肯定没有流行的DB连接器、驱动程序等广泛使用或测试。是的,这就是为什么我说在DB中存储PDF是最简单的方法。但缺点是,一旦数据库变大,备份和恢复需要很长时间。另外,我听说恢复多GB MySQL数据库时出现问题。