3.1版本后的getFiles用法

波哥好!大家好!

    因为之前用的是1.4版本,导致现在更新到3.1后多文件上传导致上传的时候出现问题,在3.1手册中只有getFile单个文件上传的示例,没有多文件的,所以我不知道3.1后的多文件上传是怎么样的一个操作,文件上传虽然能够成功,但是会在该项目的首路径比如:D:下,没有上传到指定的文件下,而且也没有更改名称。以下是我写的代码,各位大神麻烦看下哪里出错了。

public void upload() {
    // 可能有流
    List<UploadFile> uploadFile = this.getFiles();


    System.out.println(uploadFile);

    //指定用户文件上传路径
    String urlPath = PathKit.getWebRootPath() + "\\upload\\image\\";

    File file = new File(urlPath);

    //用于保存修改之后的的文件名称
    String newName = "";

    //判断文件流是否为空
    if (uploadFile != null) {
        //判断文件夹是否存在,如果不存在就创建文件夹
        if (file.exists()) {
            if (file.isDirectory()) {
                System.out.println("目录以存在!");
            } else {
                System.out.println("同名文件存在,无法创建目录!");
            }
        } else {
            if (file.mkdir()){
                System.out.println("目录创建成功!");
            } else {
                System.out.println("目录创建失败!");
            }
        }
        for (int i = 0; i < uploadFile.size(); i++) {
            String picType = "." + uploadFile.get(i)
                            .getContentType()
                            .substring(uploadFile.get(i)
                            .getContentType()
                            .lastIndexOf("/") + 1);

            file = uploadFile.get(i).getFile();

            // 图片类型
            newName = UUID.randomUUID() + picType;

            File fileE = new File(urlPath + newName);

            //创建成功后再重命名该文件
            file.renameTo(fileE);

            if (newName != null && !newName.equals("")) {
                String reJson = "{\"status\":\"200\",\"message\":\"新增图片成功!\"}";
                renderJson(reJson);
            } else {
                String reJson = "{\"status\":\"500\",\"message\":\"新增图片失败!\"}";
                renderJson(reJson);
            }
        }
    }
}


评论区

JFinal

2017-08-07 19:34

将 cos-26Dec2008.jar 升级到 cos-2017.5.jar 版本

在本站首页可以下载到 jfinal-3.1-all.zip, 从 maven 库中也可以得到

dear7575

2017-08-08 09:17

@JFinal 我升级了,


File fileE = new File(createPath + newName);

System.out.println("fileE:\t" + fileE);

file.renameTo(fileE);

但是文件上传不到指定的目录里面。

热门反馈

扫码入社