UJCMS 如何将上传的附件保存到程序之外的目录

2022-07-12 11:55

上传的文件默认保存在系统的 /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>

另外“访问路径”也是可以修改的,只要确保该访问路径能够访问到相应的文件。

0791-85271700
QQ咨询:1779755751
QQ交流群:626599871
微信咨询
微信扫码咨询
微信交流群
微信交流群
Powered by UJCMS © 2010-2025 All Rights Reserved
QQ咨询
电话
微信
微信扫码咨询