jFinal上传覆盖原文件

我在一个项目中需要上传覆盖原文件,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();
    }

评论区

wumugulu

2018-03-22 11:06

没看源码,不过简单来说不管之前文件有没有存在,直接做个删除就可以了吧,hoho

热门分享

扫码入社