上传的文件默认保存在系统的/uploads
目录下。可在配置 - 全局设置 - 附件存储点
中设置:
这个目录是相对于程序根目录的,如程序部署在D:/tomcat/webapps/ROOT
目录下,上传的文件则保存在D:/tomcat/webapps/ROOT/uploads
目录下。
如果希望将上传的文件保存在程序以外的目录,则需要使用到file:
前缀。如file:D:/tomcat/webapps/uploads
。
为了防止输入任意目录,导致服务器敏感文件被访问,需要在/WEB-INF/classes/application.yaml
(源码为/src/main/resources/application.yaml
)文件中,配置ujcms.storageFilePrefix
项目。配置后需重启tomcat。
# 储存点文件前缀。配置该项可以允许储存点使用`file:`前缀访问程序的其它目录及其子目录。多项使用逗号分割。如 file:/data/ujcms,file:d:/my/dir
ujcms.storageFilePrefix: D:/tomcat/webapps/uploads
需要注意的是,D:/tomcat/webapps/uploads
目录依然在tomcat的webapps目录下,也意味着这个目录下的文件可以通过tomcat访问到,而且和“访问路径”/uplodas
是一致的。
但如果将文件放到其它非tomcat/webapps的目录下,则需要对tomcat进行配置,确保tomcat可以访问到该目录,或者另外配置nginx访问该目录,而且要和“访问路径”的设置一致。
下面以tomcat的配置为例,将上传的附件保存到D:/other/dir/uploads
。
修改tomcat的server.xml里的Host、Context配置,可以实现Tomcat之外的/uploads文件夹可访问。
<Host ...>
<Context path="/uploads" docBase="D:/other/dir/uploads" />
</Host>
另外“访问路径”也是可以修改的,只要确保该访问路径能够访问到相应的文件。