我在一个项目中需要上传覆盖原文件,jFinal本身是自动添加1.。。n的,我在上传时做了如下修改。
public void upload() {
Users user = getSessionAttr("user");
//获取绝对路径
String path = getRequest().getSession().getServletContext().getRealPath("/") + "/upload/";
try {
UploadFile file = getFile("files", user.getStr("id"));
//如果已经存在,覆盖原文件
if (!(file.getFileName()).equals(file.getOriginalFileName())) {
File oldFile = new File(path + user.getStr("id") + "/" + file.getOriginalFileName());
if (oldFile.exists()) {
File newFile = new File(path + user.getStr("id") + "/" + file.getFileName());
oldFile.delete();
newFile.renameTo(oldFile);
}
}
setAttr("message", "上传文件成功");
} catch (Exception e) {
e.printStackTrace();
setAttr("message", "上传文件失败");
}
renderJson();
}