FJinal文件上传机制自定义

狼族盟约元 发布于 2015/06/11 08:52
阅读 164
收藏 0

@JFinal 你好,想跟你请教个问题:

您好!默认的文件上传机制是,遇到相同文件名的文件,就在后缀+1,例如xxx1.doc
如何自定义呢?我说的不是命名方式,而是机制
例如,文件上来,我验证七MD5值,如果相同,就覆盖源文件,或者不上传,不同,在加后缀。即xxx1.doc


加载中
0
铂金蛋蛋
铂金蛋蛋
不看源码的吗
铂金蛋蛋
铂金蛋蛋
com.oreilly.servlet.MultipartRequest 像你所说的机制在这个类里,翻吧
铂金蛋蛋
铂金蛋蛋
MultipartRequest 上传的代码在这里,好好看看
0
柏show
柏show

jfinal 用的是cos上传,同名文件的处理机制也确实是加后缀,,但是你可以自己写方法去实现的

getFile(String parameterName, String saveDirectory)用这个方法将文件先存到tmp目录,然后再去进行你的MD5处理,最后进行读写操作将文件存到正式目录

0
JFinal
JFinal

        这部分代码是被封装在 cos 中的,jfinal 是利用了这个第三方的工具实现的文件上传,不过 jfinal 2.0 提供了上传文件重名时的更名策略接口,只需要调用一下: OreillyCos.setFileRenamePolicy(FileRenamePolicy) 即可,自己实现一个 FileRenamePolicy,cos 会在重名出现时回调你的接口,这时就提供了机会让楼主使用自己希望的策略,例如使 md5 之类判断文件是否一样之类的方式。

     即便不利用策略接口,也可以在获取到上传文件以后,通过对比UploadFile对象的 getFileName() 和 getOriginalFileName值是否相同,来判断本次上传的文件是否被更名, 从而可以在被更名时采取相应的策略做些事。

返回顶部
顶部