开发者社区> 问答> 正文

JFinal文件上传问题?报错

新手刚学习JFianl 遇见一个问题,关于文件上传的:

UploadFile uploadFile = getFile("file")或者UploadFile uploadFile = getFile(getPara("file"));
如果这样写默认上传到web根目录下的upload文件夹下eg:
E:\IDEA\MyProject\Jfinal_upload\out\artifacts\Jfinal_upload_war_exploded\upload 上传成功


UploadFile uploadFile = getFile("file","temp")或者UploadFile uploadFile = getFile(getPara("file"),"temp");
如果这样写会上传到web根目录下的upload文件夹下的temp文件夹下eg:
E:\IDEA\MyProject\Jfinal_upload\out\artifacts\Jfinal_upload_war_exploded\upload\temp 上传成功




UploadFile uploadFile = getFile("file",PathKit.getWebRootPath()+File.separator+"temp")或者UploadFile uploadFile = getFile(getPara("file"),PathKit.getWebRootPath()+File.separator+"temp");
这样会报java.lang.RuntimeException,提示找不到路径或者不能创建目录
生成的上传路径竟然是这样的eg:
E:\IDEA\MyProject\Jfinal_upload\out\artifacts\Jfinal_upload_war_exploded\upload

\E:\IDEA\MyProject\Jfinal_upload\out\artifacts\Jfinal_upload_war_exploded\temp 上传失败

这样的地址是默认的上传地址,在加上自己设置的上传路径


我不明白既然可以自定义上传文件路径,怎么又会加上默认的上传路径,这样有什么意义嘛?看了源码不是很理解,还有既然getFile()返回的是一个UploadFile对象,获取他的属性的时候报空指针,eg:不能获取fileName,不能获取originalFileName,只能获取上传的路径而且获取的是绝对路径类似上面的地址一样。假如我上传的是图片上传到服务器之后,把地址存在数据库中,页面加载的时候从数据库读取这个地址,使用img标签显示会报错。不能加载本地资源,这个我知道肯定是我存的路径的问题,这个好修改但是不明白,这个默认路径怎么回事?求各位大神解救

展开
收起
爱吃鱼的程序员 2020-06-09 14:14:59 693 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    文件统一规范,统一处理就这么简单。

    如果不做默认路径存到了tomcat/temp里面去。

    你二次处理才可以移动到你的指定目录里。

    这样不是更麻烦么...

    回复 @tinshen:如果是图片使用img标签显示图片那就报错。回复 @火龙战士:不需要了。就是你的本地相对路径。还不是很理解,那我该怎么样去使用,既然使用UploadFile获取的文件路径是默认的加上自己自定义的路径,那么存数据库我是不是还要在截取啊
    2020-06-09 14:15:16
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载