如何在Spring Web项目中获取Relative Path

时间:2015-08-29 06:48:24

标签: spring

我正在创建一个spring web项目,我将上传一个csv文件并将其保存到数据库中。我需要将文件保存在项目的相对路径中,以便可以通过url访问它。例如:localhost:port / project_name / file_name 但是我每次都使用servlet上下文或URL获取绝对路径。 请帮我解决弹簧控制器中的相对路径。

1 个答案:

答案 0 :(得分:1)

您可以将文件保存在任何位置。我特别在tomcat的目录中创建一个文件夹,并通过Java System Property System.getProperty("catalina.base");

访问它

然后,您可以选择其中一种可能性:

例如,我将文件保存在:

System.getProperty("catalina.base")+File.separator+"mydata"+File.separator+filename;

我可以创建控制器:

@Controller
public class MyDataController {

    @RequestMapping("/mydata/{filename}")
    public String helloWorld(@PathVariable("filename") String filename) {
        String path = System.getProperty("catalina.base")+File.separator+"mydata"+File.separator+filename;
        return new FileSystemResource(new File(path)); 
    }
}

或在tomcat中声明一个上下文创建文件: [tomcat6directory] ​​/conf/Catalina/localhost/appcontext#mydata.xml 包含

<Context antiResourceLocking="false" privileged="true" path="/mydata" docBase="${catalina.base}/mydata" />