我的项目是一个EJB。我想将图像存储在oracle数据库中。我理解将文件路径存储在数据库中以及将文件存储在文件夹中效率更高。我的文件夹“images”位于ejb中。如果图像是java.jpg,我该如何构建文件路径?我已经尝试了两个images / java.jpg和images \ java.jpg并且没有一个工作。 图像位置的真实路径是“C:\ Users \ Kate \ Documents \ NetBeansProjects \ Kate_Assig \ Kate_Assig-ejb \ images”和“Kate_Assig-ejb”是ejb项目,这是包含图像的图像文件夹所在的位置。
我现在面临的挑战是将文件路径存储在数据库中。我试过这个选项“.. \ images \ java.jpg”,但它没有用。它不起作用,因为当我从客户端查询表时,不显示图像。
客户端是Web应用程序。
答案 0 :(得分:0)
假设您将图像存储在某个目录及其在数据库中的路径,并且您只有JEB模块,但您希望使用URL访问Web上的图像。您需要了解的是EJB不提供Web访问。您还必须创建Web模块并将其配置为为图像提供服务。
应该有一个servlet接受参数或路径中的图像标识符。然后它将从数据库加载路径,打开文件并将其返回。如果将文件存储在Web模块中的某个公共位置(不在WEB-INF下),则根本不需要使用数据库。可以构造参数/路径,使其保存足够的信息以查找和提供它。
Oracle提供了一些关于Web模块的教程:http://docs.oracle.com/javaee/5/tutorial/doc/bnadx.html基本上你需要创建一个具有以下结构的war文件:
index.jsp
WEB-INF\
classes\
lib\
web.xml
目录WEB-INF
受到保护,浏览器无法访问它。它包含用于存储Web模块类的classes
目录,用于依赖项的lib
文件夹(ejb模块jar,库)和web.xml
。此文件很重要,因为它定义了servlet,过滤器和URL映射。
您可以研究以下示例来实现您的解决方案,该解决方案将提供存储在文件系统中的图像:
我希望这会帮助您继续。