使用spring数据上传文件 - gridfs

时间:2014-02-19 11:02:01

标签: java spring-mvc spring-data fileutils

您好我正在尝试使用弹簧数据上传文件。当我尝试上传文件时,我得到一个例外。

我的文件上传代码是

try {
        File file = new File(this.TEMPORARY_FILES_DIRECTORY, Calendar.getInstance().getTimeInMillis() + "_" + fileNameUnderscored);
        writeByteArrayToFile(file, form.getFile().getBytes());
        FileInputStream inputStream = new FileInputStream(file);
        GridFSFile gridFSFile = gridFsTemplate.store(inputStream, "test.png");
        PropertyImage img = new PropertyImage();
        img.setPropertyUid(gridFSFile.getFilename());
        imagesRepository.save(img);

    } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

其中TEMPORARY_FILES_DIRECTORY = new File("/home/temp/");

我得到的例外是

java.io.IOException: File '/home/temp/1392807425028_file' could not be created

关于调试FileUtils

if (parent.mkdirs() == false) {
                throw new IOException("File '" + file + "' could not be created");
            }

parent.mkdirs() is false. 

有人可以告诉我这段代码有什么问题。

1 个答案:

答案 0 :(得分:2)

你确定它是/home/temp而不是/home/username/temp吗?您无法在主目录之外创建目录。如果您想将文件存储在主目录中,请尝试使用Systen.getProperty("user.home") + "/temp"之类的内容。无论如何,为什么不选择/tmp作为临时目录?