在spring项目的文件夹“resources”中创建文件

时间:2014-07-16 20:47:29

标签: java spring

在我当前的春天,一些表单有一个字段,用户可以在其中上传文件,该文件应保存在项目文件夹resources内(src / main / resources,遵循maven创建的结构)。

负责将文件保存在此文件夹中的方法工作正常,直到此行:

URL path = this.getClass().getClassLoader().getResource(file);

变量path保留值null。变量file使用此值定义:

String file = "/"+this.getName()+"/"+String.valueOf(id)+"/picture.jpg";

任何人都可以告诉我正确的方法吗?

PS:此方法的完整代码是:

public boolean upload_picture(E e, MultipartFile f) {
    Integer id = null;

    if(f == null) {
        return false;
    }

    Class<?> clazz = e.getClass();
    Method methods[] = clazz.getDeclaredMethods();
    for(int i=0; i<methods.length; i++) {
        if(methods[i].getName().equals("getId")) {
            try {
                id = (Integer) methods[i].invoke(e);
            } catch (IllegalAccessException e1) {
                e1.printStackTrace();
                return false;
            } catch (IllegalArgumentException e1) {
                e1.printStackTrace();
                return false;
            } catch (InvocationTargetException e1) {
                e1.printStackTrace();
                return false;
            }
        }
    }

    BufferedImage src;
    try {
        src = ImageIO.read(new ByteArrayInputStream(f.getBytes()));
    } catch (IOException e3) {
        e3.printStackTrace();
        return false;
    }

    String file = "/"+this.getName()+"/"+String.valueOf(id)+"/picture.jpg";
    URL path = this.getClass().getClassLoader().getResource(file);
    File destination;
    try {
        destination = new File(path.toURI());
    } catch (URISyntaxException e2) {
        destination = new File(path.getPath());
        e2.printStackTrace();
    }

    try {
        ImageIO.write(src, "jpeg", destination);
        return true;
    } catch (IOException e1) {
        e1.printStackTrace();
        return false;
    }
}

0 个答案:

没有答案