在上传文件时,是否可以将上传目录设置在项目外部,做到和项目分离。同时在需要访问已上传文件时还可以访问到。不知道使用jfinal-undertow需要怎么实现,谢谢。
就像springboot中映射静态资源文件一样。
@Configuration public class GoWebMvcConfigurerAdapter extends WebMvcConfigurerAdapter { @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { //配置静态资源处理 registry.addResourceHandler("/**") .addResourceLocations("classpath:/resources2/", "classpath:/static2/", "classpath:/public2/", "file:///tmp/webapps/"); } }
设置文件上传保存基础路径,当路径以 "/" 打头或是以 windows 磁盘盘符打头, 则将路径设置为绝对路径,否则路径将是以应用根路径为基础的相对路径
例如:
1:参数 "/var/www/upload" 为绝对路径,上传文件将保存到此路径之下
2:参数 "upload" 为相对路径,上传文件将保存到 PathKit.getWebRoot() + "/upload" 路径之下
此外,如果你又希望可以通过 web 能直接访问到这些上传的资源就更简单了,配置一下 undertow:
undertow.resourcePath=src/main/webapp, /var/www/upload
以上配置的 src/main/webapp 用于开发,当然你开发的时候 web 资源不在这里可以不需要,例如有些是将 web 资源放在 src/main/resources/static 下面的,可以这么配置:
undertow.resourcePath=classpath:static, /var/www/upload
以上两个 undertow.resourcePath 配置的第二个参数就是你希望在项目之外可以访问的 web 资源: /var/www/upload,可以配置多个,可以配置成与 setBaseUploadPath(...) 一样的值,极致方便