我正在尝试创建一个包含上传文件的文件夹。我已经看到一些将文件保存到绝对文件夹中的示例,例如 D:/ tmp 或主目录。我的问题是我正在尝试将上传的文件放入项目文件夹中的文件夹中。
我也尝试使用如下方式获取项目文件夹:
public static String getProjectFolder(){
return System.getProperty("user.dir")+"/";
}
结果变成这样,并且在Html文件中找不到文件!
http://localhost:1234/Users/USER_NAME/Documents/java/PROJECT_NAME/upload/genres/action.jpg
将文件夹添加到项目中的最佳方法是什么?或者我应该使用硬编码文件夹吗?
答案 0 :(得分:1)
您需要使用staticFiles.externalLocation()
将要上传文件的文件夹设置为静态文件夹。
客户端可以访问的唯一文件夹(用于从OR上传内容)是使用静态文件位置API staticFiles.externalLocation()
设置的文件夹。您还可以看到here的示例。
当我在本地运行我的服务器时,我将其定义为:
staticFiles.externalLocation(System.getProperty("user.dir") + "/src/main/resources");
这是关于你的问题。
你可能会遇到一个问题。因为现在您可能有两个要公开的位置:
/src/main/resources
)将这两者放在同一位置并不是一个好习惯。我设法通过在公共文件夹中创建名为files
的符号链接来解决这个问题。
abcmbp:resources abc$ pwd
/Users/abc/dev/wspace/proj1/src/main/resources
abcmbp:resources abc$ ls -l files
lrwxr-xr-x 1 abc staff 27 Mar 3 21:20 files -> /Users/abc/appUploadFolder/
然后,在上传路径的post句柄中,我将此文件夹作为目标,这样我就可以将资源和上传文件分开。