Java 无法检查web项目中是否存在文件
我的web项目中有一个pdf文件,位于以下位置: “静态/可下载/20/Home\u insurance\u booklet.pdf” WebContent中存在“静态”。项目的上下文根是“pas” 在其中一个jsp中,我需要检查Home\u insurance\u booklet.pdf文件是否存在。我尝试了很多方法,但都没有成功。下面是我使用的代码Java 无法检查web项目中是否存在文件,java,jsp,Java,Jsp,我的web项目中有一个pdf文件,位于以下位置: “静态/可下载/20/Home\u insurance\u booklet.pdf” WebContent中存在“静态”。项目的上下文根是“pas” 在其中一个jsp中,我需要检查Home\u insurance\u booklet.pdf文件是否存在。我尝试了很多方法,但都没有成功。下面是我使用的代码 String filePath = request.getContextPath()+"/static/Downloadables/20/Hom
String filePath = request.getContextPath()+"/static/Downloadables/20/Home_insurance_booklet.pdf";
if(new File(filePath.toString()).exists()) {
------
}
通过文件存在,条件返回false。如何在web项目根目录中的特定位置检查文件是否存在
编辑:
显示的文件路径为
/pas/static/Downloadables/20/Home\u insurance\u小册子.pdf您必须使用基于文件系统的URL而不是基于相对web的URL。您必须使用基于文件系统的URL而不是基于相对web的URL。检查项目中是否加载了文件。然后在代码中首先尝试文件的绝对路径,然后尝试相对路径。检查文件是否加载到项目中。然后在代码中首先尝试文件的绝对路径,然后尝试相对路径。尝试以下操作:
String path = getServletContext().getRealPath("/static/Downloadables/20/Home_insurance_booklet.pdf")
File file = new File(path)
if (file.exists()) {
// Success
}
下面是getRealPath()
的API文档:
尝试以下操作:
String path = getServletContext().getRealPath("/static/Downloadables/20/Home_insurance_booklet.pdf")
File file = new File(path)
if (file.exists()) {
// Success
}
下面是getRealPath()
的API文档:
使用
ServletContext context = request.getServletContext();
StringBuilder finalPathToFile = new StringBuilder(context.getRealPath("/"));
ServletContext#getRealPath()将web内容路径(服务器磁盘文件系统上扩展的WAR文件夹结构中的路径)转换为绝对磁盘文件系统路径
“/”
表示web内容根目录
之后,以这种方式追加:
finalPathToFile.append("/static/Downloadables/20/Home_insurance_booklet.pdf");
然后使用
if(new File(finalPathToFile.toString()).exists()) {
---------------------
doWhateverYouWantToDo
---------------------
}
使用
ServletContext#getRealPath()将web内容路径(服务器磁盘文件系统上扩展的WAR文件夹结构中的路径)转换为绝对磁盘文件系统路径
“/”
表示web内容根目录
之后,以这种方式追加:
finalPathToFile.append("/static/Downloadables/20/Home_insurance_booklet.pdf");
然后使用
if(new File(finalPathToFile.toString()).exists()) {
---------------------
doWhateverYouWantToDo
---------------------
}
如果你打印文件路径,你会得到什么?@jamp我得到:/pas/static/Downloadables/20/Home\u insurance\u bulkbook.pdfI我猜路径实际上并不存在,是吗?简单地说,它以/开头,因此它是一条绝对的路径。。。也许你想用绝对路径或规范路径检查pas/static/Downloadables/20/Home\u insurance\u bulket.pdftry我刚刚重读了你的问题,实际上你可能只想检查“static/downloables/20/Home\u insurance\u bulket.pdf”。。。我必须对你的项目结构有一个更清晰的概念,才能告诉你哪一个…如果你打印文件路径,你会得到什么?@jamp我得到:/pas/static/Downloadables/20/Home\u insurance\u booklet.pdfI我猜路径实际上并不存在,是吗?简单地说,它以/开头,因此它是一条绝对的路径。。。也许你想用绝对路径或规范路径检查pas/static/Downloadables/20/Home\u insurance\u bulket.pdftry我刚刚重读了你的问题,实际上你可能只想检查“static/downloables/20/Home\u insurance\u bulket.pdf”。。。我必须对你的项目结构有一个更清晰的概念,才能告诉你哪一个。。。