想问问UploadFile里面的getFileName之类的用法


@Before(Tx.class)
public void addLog(){
//enctype="multipart/form-data",用了这个提交过来的表单,需要先getFile(),才能再getPara(),否则为空
getFile();
//还没做用户类,直接赋值
int uid = 1;
//获取表单传过来的值
String title = getPara("title");
String content = getPara("content");
//上传文件
UploadFile uploaderInput = getFile(getPara("uploaderInput"));
UploadFile atta = getFile(getPara("atta"));
//获取上传文件的路径
String imgPath = uploaderInput.getUploadPath();
String attaPath = atta.getUploadPath();
//获取当前时间
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String date = sdf.format(new Date());
LogService.ls.saveLog(uid,title, content,date, imgPath, attaPath);
}
获取上传文件的路径的那里会报空指针,然后我试了试获取文件名字,也是空指针,最后我
直接syso输出上传的文件,显示null,但是文件已经上传了,就是获取不了信息,这是为什
么?我学jfinal两个星期,问的问题可能很小白,但我就是不明白,想在这里求助


评论区

JFinal

2017-11-09 11:41

先确保 UploadFile 对象不为 null,才能进一步获取 fileName 这样的数据,只要是正常上传,数据一定是有的,再多试几次

JFinal

2017-11-09 11:41

注意一下: 一定要先调用一次 getFile 系列的方法

maricle

2017-11-09 12:03

谢谢回复,我发现一个问题,就是我用UploadFile uploaderInput = getFile(getPara("uploaderInput"));是得不到数据的,但是我用UploadFile uploaderInput = getFile("uploaderInput");能得到数据,我用的freemarker的html前端页面,应该是船只的时候出了问题。我再看看怎么搞

JFinal

2017-11-09 12:22

@maricle 其实就是 getFile(...) 方法的参数对不对的问题,如果是一个参数,那么参数要与上传文件表单的 name 字段值相同

有如下建议:
1:单文件上传,用 getFile() 不带参最省事
2:多文件上传,用 getFiles() 不带参最省事
3:只有在需要指定上传文件的目录时,才建议带参

maricle

2017-11-09 13:02

@JFinal 好的,谢谢波总

热门反馈

扫码入社