java极速web+orm框架Jfinal 之 上传文件-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

java极速web+orm框架Jfinal 之 上传文件

小旋风柴进 2016-06-08 12:58:44 2178

在上传文件时,我们需要设置form表单 ENCTYPE= "multipart/form-data "

在controller中,获取文件时 UploadFile uf = getFile(x,x,x,x);

此时,上传至服务器的文件名保持不变,即test.doc ,保存在服务器的文件名依然为test.doc

那么我想采用时间戳来为服务器上的文件命名时,暂不能实现。

而且在这个表单中的其它字段值,采用getPara(X),是得不到的(null)

基于以上问题:
1、建议在getFile时,多传一个参数(重命名是否支持,或者直接为新文件名)

<span style="font-size:16px;">multipartRequest = new  com.oreilly.servlet.MultipartRequest(request, saveDirectory, maxPostSize, encoding, fileRenamePolicy);</span>

以上为原代码,这里需要修改的是 fileRenamePolicy
重新定义一个实现了 FileRenamePolicy 接口的类 UploadFileRenamePolicy ,重写rename方法
public class UploadFileRenamePolicy implements FileRenamePolicy

2、o'reilly组件 MultipartRequest 对象. getParameter("");来获得我们需要的字段值
在原抽象类中,私有成员MultipartRequest没有get set方法,先添加。
然后,在我们的controll中get MultipartRequest().getParameter(x)

注意:这里的get MultipartRequest()需要在getFile()之后,因为在getFile()时, MultipartRequest才会被初始化

以上只是学习时的,临时补救方法。

Java iOS开发
分享到
取消 提交回答
全部回答(1)
  • 小旋风柴进
    2019-07-17 19:31:40

    想采用时间戳来为服务器上的文件命名时,可以这样:

    UploadFile uf = getFile();
    File file = uf.getFile();
    0 0
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

推荐文章
相似问题
推荐课程