代码之家  ›  专栏  ›  技术社区  ›  Henrik Andersson user2120121

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

  •  1
  • Henrik Andersson user2120121  · 技术社区  · 14 年前

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

    当我在本地机器上部署我的项目时,我正在使用的代码可以工作,但是当我实时部署它时,它就会停止工作。 我发现这和我的权限有关java.policy策略.

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

    阅读时卡塔琳娜,出去这是日志给我的线索。

    /usr/local/tomcat/work/Catalina/project name here/context of project here/upload\ u 490341a6\ u 12b1d397355\ u 76ce\ u 00000001.tmp

    我的想法大致是这样的(注意:这不是一个实际的方法:P)

    ServletActionContext.getContext().getSuperHiddenTemporaryCatalog();

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

    我希望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 "";
    
        }
    
    }
    
    2 回复  |  直到 12 年前
        1
  •  1
  •   gpeche    14 年前
    File tempDir = (File) servletContext.getAttribute("javax.servlet.context.tempdir");
    

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

        2
  •  0
  •   Stephen C    14 年前

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