JFinal提供的getOriginalFileName()和getFileName()方法不一样的吗?

为什么getFileName()方法获取的文件名不对的,而getOriginalFileName()获取到的文件名才是正确的,这两个方法有什么不一样吗?image.png

评论区

童年

2018-08-08 10:05

童年

2018-08-08 11:01

杜福忠

2018-08-08 12:16

@童年
OriginalFileName >> 原始文件名(在客户端时的文件名)
getFileName() >> 在服务器上的文件名.

因为上传文件夹的位置已经存在 这个文件名了, 这个时候文件名会自动+1, 所以就不一样了. 比如有的业务需要在下载的时候保持原名, 这样的业务一般在数据库会存储文件的路径和原始文件名, 下载的时候就可以还原了.

童年

2018-08-08 17:29

@杜福忠 奥,了解,多谢大佬相助,谢谢,小白懂了!

童年

2018-08-09 12:00

@杜福忠 还有一个问题,大佬,请教一下:getFile("file", "", 100*1024*1024)这个方法不给他一个文件大小限制的参数,当文件大小超过10几二十M之后,getFile()方法下面的代码就执行不下去了,控制台也没有报错信息,不知道为什么?当文件超过多少M后,后台就一定要限制文件大小得吗?我想不限制文件大小,怎么弄?

杜福忠

2018-08-09 12:37

@童年 有默认值:
Default max post size of multipart request: 10 Meg
1024 * 1024 * 10

杜福忠

2018-08-09 12:46

@童年 更改默认值 在 JFinalConfig 的 方法configConstant(Constants me);里 me.setMaxPostSize(100*1024*1024); 就好了

杜福忠

2018-08-09 12:47

或者 JFinal.me().getConstants().setMaxPostSize(100*1024*1024);

童年

2018-08-09 14:08

@杜福忠 大佬,我的意思是不限制文件大小,不是要限制他的大小,给他默认值,我是想怎么做才能不限制上传文件的大小?因为我根本就不知道上传文件有多大,不能给他限制大小

杜福忠

2018-08-09 15:33

@童年 如果用getFile的话, 肯定要限制的, 不然服务器磁盘是多大?超过磁盘岂不凉了, 还有带宽问题, 你可以设置一个最大值比如100G ??? 这个大小就算是无限制了, 太大的文件都只能走切片或第三方工具. 如果是特殊业务, 比如需要把文件传到第三方文件服务器, 可以直接拿到getRequest()进行IO操作,不在代码服务器留存等

童年

2018-08-09 16:30

@杜福忠 哦,酱紫,了解了,感谢大佬指点!谢谢

热门反馈

扫码入社