@Jfinal,求助
今天又出现了个怪问题:上传路径无法指定。
使用getFile上传时uploadPath无论传入绝对路径还是相对路径,都不会影响最终结果,全部传到upload下,debug发现根本没走MultipartRequest的getFinalPath,导致传入的参数根本没有拼装,是我哪里没有配置好吗?
具体代码如下:
配置类
public void configConstant(Constants me) { // 加载少量必要配置,随后可用PropKit.get(...)获取值 PropKit.use("jfinal.properties"); me.setDevMode(PropKit.getBoolean("devMode", false)); me.setBaseUploadPath(PathKit.getWebRootPath() + File.separator + "upload" + File.separator); }
上传代码:
StringBuilder uploadPath = new StringBuilder(); uploadPath = uploadPath.append(DateKit.dateToStr(new Date(), "yyyyMMdd")).append(File.separator); UploadFile photo = getFile("file", uploadPath.toString(), 20 * 1024 * 1024, "UTF-8");
用的是Jfinal3.0
该绝对路径可以设置在项目之外的地方,一旦这个 base path 设置好了,那么文件上传、下载都将在这个 base path 路径之下玩耍
因此,在 getFile(...) 时指令的路径,也只是相对于 base path 的一个相对路径而已,如果确实希望让路径更加灵活,可以尝试下面两种方式:
1:将路径设置在更浅的目录,例如设置为 "/" ,那么在 getFile 时指令目录的空间范围会大,应该可以满足需求
2:在 getFile(..) 以后,通过 renameTo(newPath) 将文件转移到希望的地方