gpt4 book ai didi

java - 如何避免在 Paths#get 方法中硬编码完整路径

转载 作者:行者123 更新时间:2023-11-30 02:25:03 25 4
gpt4 key购买 nike

我想将 Primefaces UploadedFile 的副本保存到我的项目目录中。我一直在互联网上寻找解决方案,我发现使用 Paths#get 方法。 this 中给出的示例答案是Paths.get("/path/to/uploads");,问题是,/path/to/uploads的具体路径在哪里?我找不到它。我的意思是我应该在哪里创建路径 /path/to/uploads?在我的项目目录下?但哪个文件夹?我通过对完整路径进行硬编码来临时解决这个问题,例如 Paths.get("C:/uploads/");

最佳答案

FacesContext.getCurrentInstance().getExternalContext().getRealPath("/") 将返回项目的当前安装目录。

正如 @Kukeltje 建议的那样,永远不要将上传的文件保存到项目目录中,...将其保存在 webapps 之外,甚至保存在容器之外。

因此,在容器外部创建一个目录(您要放置上传的副本的位置),并将 ../ 附加到每个后退步骤的上述路径。

假设您的应用程序部署在 D:/Tools/Tomcat7/webapps/your-application-name(例如,在 Windows 上使用 Tomcat),并且您希望将副本保存到 D :/Tools/uploads 然后下面将为您提供所需的文件路径:

String uploadsFilePath = FacesContext.getCurrentInstance().getExternalContext()
.getRealPath("../../../uploads");

将其与 Paths.get(uploadsFilePath) 一起使用并开发您的下载逻辑(我不确定您为 Paths 类使用哪个库)。

关于java - 如何避免在 Paths#get 方法中硬编码完整路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45862077/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com