Best practice to save temp files on tomcat? [dupli

2019-02-03 18:49发布

This question already has an answer here:

I need to demo a xml based data interchange system. It is demoed offline on a trusted computer at school. The application will get database later but just for this presentation I only need to show the layout, opening and saving of xml-files and how the table gets data from the xml.

So, what would be the best location to let the web app create the xml files temporarily so I can showcase this app? I'm using Eclipse and Tomcat.

As mentioned, security is not an issue at all, since this version is NOT going to be online. Also, it's ok if the files get erased each time the application is run.

They need to exist only for the duration of the presentation where the application is run once. So, I'm clueless what would be the best location and how to get the path to such location not depending on the computer used.

Thank you.

4条回答
Bombasti
2楼-- · 2019-02-03 19:33

Use the property java.io.tmpdir to get the tomcat temp folder and save your files there. That will be a good place to temporarily keep them in. So you can define it as follows:

public static final String TMP_DIR = System.getProperty("java.io.tmpdir")
查看更多
Anthone
3楼-- · 2019-02-03 19:36

You can use this method to get temp file location according to your Operating System

public static String getSystemFileLocation()
{
    File tmpFile = null;
    String fileLocation="/tmp/";
    if (System.getProperty("os.name").toUpperCase().indexOf("WINDOWS") == 0) {
        tmpFile=new File("c:\\temp");
        if(tmpFile.exists()) {
            fileLocation="c:\\temp\\";
        }
        else {
            tmpFile.mkdir();
            fileLocation="c:\\temp\\";
        }
    }
    else if (System.getProperty("os.name").toUpperCase().indexOf("WINDOWS") == -1) {
        fileLocation="/tmp/";   
    }
    return fileLocation;
}
查看更多
家丑人穷心不美
4楼-- · 2019-02-03 19:41

Old question, but if there is for creating temp file why not use File.createTempFile function?

Example:

File temp = File.createTempFile("real",".howto");
temp.deleteOnExit();
查看更多
Emotional °昔
5楼-- · 2019-02-03 19:42

Either use the property java.io.tmpdir as indicated or use the servlet context attribute javax.servlet.context.tempdir defined in the specification. For tomcat that attribute can be changed by the workDir attribute on the context.

You can use that attribute by a call to servletContext.getAttribute("javax.servlet.context.tempdir")

See tomcat documentation for detail.

查看更多
登录 后发表回答