servlets Java:如何验证本地主机上的映像文件是否存在
这让我发疯。我正在用Java编写一个web应用程序,我只想验证是否存在保存到web根目录下的/images文件夹中的图像
我所做的1000000次谷歌搜索似乎表明该文件。exists(path)方法是一条可行的道路。但出于显而易见的原因,我不想硬编码路径
实际上,我正在使用的测试映像文件存在于我的D-drive上,比如说,D:\documents\images\myimage。jpg。GlassFish是我的本地服务器,我认为在部署我的应用程序时,我的图像文件不会复制到“GlassFish文件夹”,因此我认为唯一的物理副本是D:驱动器上的
我能得到的唯一方法是:
boolean fileExists = new File(somePath).exists();
要返回TRUE,请使用字符串“D:\documents\images\myimage.jpg”。我所追求的是一个类似exists()的测试,它可能使用一个URL,我可以将该URL与引用站点根的其他方法或参数结合起来,然后我可以构建与之相关的URL的其余部分
非常感谢您的帮助
# 1 楼答案
因为文档是web根,所以您应该能够使用ServletContext。getRealPath(字符串)方法
http://download.oracle.com/javaee/5/api/javax/servlet/ServletContext.html#getRealPath(java.lang.String)
# 2 楼答案
也许你可以把你的图像放到war文件中,然后用getResourceAsStream来获取文件
在这种情况下,路径将相对于war文件的根