如何使用Java将文件插入到项目中

如何使用Java将文件插入到项目中,java,jsp,file-io,Java,Jsp,File Io,我试图弄清楚是否可以使用代码将文件插入到项目中。 我有一个jsp。页面,其中有一个文件选择器供用户从中选择文件,然后该文件将作为字节[]保存到数据库表中。我还将文件名(格式为thisIsAFile.png)保存到同一个表中 我想知道的是,是否可以将文件插入到项目资源中 我已经在项目中创建了一个文件,我想在其中使用代码保存该文件。 我知道,右键单击项目并进行导入是一种手动将文件添加到指定文件中的方法,但我不希望这样,而是需要一种方法,每当用户从.jsp页面选择要保存到数据库中的文件时,自动将文件(

我试图弄清楚是否可以使用代码将文件插入到项目中。 我有一个jsp。页面,其中有一个文件选择器供用户从中选择文件,然后该文件将作为字节[]保存到数据库表中。我还将文件名(格式为
thisIsAFile.png
)保存到同一个表中

我想知道的是,是否可以将文件插入到项目资源中

我已经在项目中创建了一个文件,我想在其中使用代码保存该文件。 我知道,右键单击项目并进行导入是一种手动将文件添加到指定文件中的方法,但我不希望这样,而是需要一种方法,每当用户从.jsp页面选择要保存到数据库中的文件时,自动将文件(在本例中仅为图像)保存到项目中。我试图将文件插入的路径是从.properties文件中获取的,作为
/images/banners/{0}
,然后我只需要一种方法将名称(包含文件的实际名称+.+mime类型)从数据库中获取到{0}中,并将其作为数据库对应行的字节[]保存在路径中。
非常感谢您的帮助。

当servlet收到文件时,请将其直接保存到文件系统。您可以将有关文件的其他数据保存到DB,但不必将文件保存到DB,而是创建一个FileOutStream并将其保存到文件


之后,您可以将img src标记设置为文件的物理位置,或设置为一个servlet,该servlet将以outputstream的形式返回响应

如果我理解了您的问题,我不确定。但是你在第一段中描述的方法是好的。我无法想象为什么要用另一种方法来做,因为这种方法将数据和项目分开,并且数据在集群范围内可用。所以你是说我不应该将文件插入项目,而应该直接使用数据库中的数据?我之所以尝试将数据放入项目中,是因为图像是数据库中二进制数据的形式,它们占用了很多空间。如果我能以某种方式将它们从数据库中输入到指定给它们的项目文件中,我可以将我移动的行的数据库中的二进制数据置空,节省空间、加快备份和其他过程。如果要删除数据库内容,为什么不先将文件直接保存到文件系统?表中还有列,说明区域设置、说明、mimetype、宽度、长度、可见性日期、创建者和创建日期,我仍然需要继续引用它,并确定文件将在何时何地显示。我计划从数据库中删除(设置为null)的唯一数据是二进制数据列。但是,如果文件可以直接保存到文件系统中,我想知道如何做到这一点(而不是手动使用导入),因为它总是需要磁盘上的空间。对于数据库,它是一致的(备份也是一致的)。否则,您将无法获得一致的备份(包括数据库和文件)。如果这不重要,您可以在中找到一些想法,但也可以从数据库备份中省略图像。