目前程序主要开放API供不同客户端调用,中转流程如下:
interceptor(约定交互参数校验)-->validator(参数合法性校验)-->controller(参数预处理)-->service(业务处理)-->dao(数据库操作)
因使用的文件上传功能,需要前置getFile()或getFiles(),否则导致参数无法正常获取。
受限于上述中专流程限制,需要把getFile()或getFiles()放在最上层的拦截器中。
这样一来,所有的API入口都需要走一遍getFile()或getFiles(),总感觉这样很奇怪而且不能针对不同应用场景做个性化设定,后来把需要用到上传功能的入口抽取到一个独立的拦截器,但是这样又不太灵活。
请教波总,应对这种需求有没有什么更好的方案可以兼容。
其它关于上传的一些问题(仅指个人使用感受):
文件命名策略
如遇到重名的情况,文件名默认补位累计序号,比如首次上传"name"、后续分别为“name1”、“name2”,
对于一些需要严格要求命名的场景有些不太友好,是否可以设置不同模式(覆盖、顺序累加、自定义等)
非法文件拦截
如把getFile()或getFiles()放置在顶层拦截器,文件优先执行上传,后续层层校验中途出现问题需要对文件执行删除,导致代码冗余太多,而且稍有处理不慎会导致无用文件越积越多。
项目:JFinal