Jfinal文件上传基础路径问题,windows下会以项目根路径为基础路径

时间:2024-12-21 18:07:13

在本地windows下开发测试文件上传

使用com.jfinal.cos进行multipart/form-data请求数据格式的文件上传解析

import com.jfinal.upload.UploadFile;
。。。
List<UploadFile> upFile = this.getFiles(savePath);

我设置的savePath="D:/home/upload"

预想的情况会默认将文件上传到该路径下

java.lang.RuntimeException:  Directory D:\WorkSpaces\wechat_dk\src\main\webapp\upload\D:/home/upload/ not exists and can not create directory.

at com.jfinal.upload.MultipartRequest.wrapMultipartRequest(MultipartRequest.java:95)

正常情况是发生报错。

调试发现,源码内部有一个BaseUploadPath变量作为文件上传的根路径。然后一getFiles(savePath) savePath路径为相对路径

参考链接

http://www.jfinal.com/feedback/914

jfinal 2.2 和3.0 getFile() 底层 MultipartRequest 类 反馈问题

解决方法

在JFinalConfig配置文件中,设置上传文件根路径为/

    @Override
public void configConstant(Constants me) {
...
me.setBaseUploadPath("/");
...
}

然后就可以随意设置变量savePath的根路径了。可以使用D:/xxx这种形式的根路径