我正在尝试创建一个包含上载文件的文件夹。 我已经看到了一些将文件保存到绝对文件夹(例如D:/ tmp或主目录)的示例。 我的问题是我试图将上传的文件放入项目文件夹中的文件夹中。
我也试图使用这样的项目文件夹:
public static String getProjectFolder(){
return System.getProperty("user.dir")+"/";
}
结果变成这样的东西,并且在HTML文件中找不到文件异常!
将文件夹添加到项目中的最佳方法是什么? 还是应该使用硬编码文件夹?
您需要使用staticFiles.externalLocation()
将要上传文件的文件夹设置为静态文件文件夹 。
客户端可以访问的唯一文件夹(用于从中获取内容或上传内容)是使用静态文件位置API staticFiles.externalLocation()
设置的文件夹。 您还可以在此处查看示例。
在本地运行服务器时,将其定义为:
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/
然后,在上载路径的发布句柄中,我将此文件夹指定为目的地,这样我就可以将资源和上载的文件分开。