gpt4 book ai didi

java - 使用java从临时tomcat文件夹复制文件

转载 作者:行者123 更新时间:2023-11-28 22:23:26 26 4
gpt4 key购买 nike

基本上我的问题是我需要复制一个上传的文件(该文件位于我的服务器提供商 Tomcat 的临时文件夹中,即不是本地 Tomcat)。

当我在本地机器上部署我的项目时,我使用的代码有效,但当我实时部署它时停止工作。我发现它与我在 java.policy 中的权限有关。

我需要弄清楚的是如何使用 Java 访问 Tomcat 存储临时文件的文件夹。

当读取 catalina.out 时,这是日志给我的线索。

/usr/local/tomcat/work/Catalina/此处为项目名称/此处为项目上下文/upload_490341a6_12b1d397355_76ce_00000001.tmp

我在想一些事情(注意:这不是一个实际的方法 :P )

ServletActionContext.getContext().getSuperHiddenTemporaryCatalog();

底部的代码片段有一个缺陷。

此时 sourceFile 和 targetFile 指向同一个目录。

我希望 sourceFile 路径是临时的 tomcat 文件夹。

提前致谢! :D


public String saveImage(File file, String uploadedFileName) {

String path = ServletActionContext.getServletContext().getRealPath("images");

System.out.println(path);

String fullFileName = path + "/" + uploadedFileName;

System.out.println(fullFileName);

boolean successful = false;

try {

File sourceFile = new File(fullFileName);

File targetFile = new File(path + "/" + uploadedFileName);

InputStream in = new FileInputStream(sourceFile);
OutputStream out = new FileOutputStream(targetFile);

byte[] buf = new byte[1024];
int len;
while ((len = in.read(buf)) > 0) {
out.write(buf, 0, len);
}
in.close();
out.close();


} catch (Exception e) {

successful = false;

e.printStackTrace();

}

if (successful) {

return "context of project/images/" + uploadedFileName;

} else {

return "";

}

}

最佳答案

File tempDir = (File) servletContext.getAttribute("javax.servlet.context.tempdir");

应该允许您访问您在 Tomcat 中的临时目录。如果您不能至少从那里读取文件,那就很奇怪了。

关于java - 使用java从临时tomcat文件夹复制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3735381/

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