Загрузка изображения в файловую систему в Grails - PullRequest
3 голосов
/ 01 апреля 2012

Я реализую функцию загрузки файлов в веб-приложение в Grails.Это включает в себя адаптацию существующего кода для нескольких расширений файлов.В коде я реализовал логическое значение, чтобы проверить, существует ли путь к файлу, но я все еще получаю исключение FileNotFoundException, которое /hubbub/images/testcommand/photo.gif (No such file or directory)

Мой код загрузки

def rawUpload = {       
    def mpf = request.getFile("photo")
    if (!mpf?.empty && mpf.size < 200*1024){
        def type = mpf.contentType
        String[] splitType = type.split("/")

        boolean exists= new File("/hubbub/images/${params.userId}")

        if (exists) {
            mpf.transferTo(new File("/hubbub/images/${params.userId}/picture.${splitType[1]}"))
        } else {
            tempFile = new File("/hubbub/images/${params.userId}").mkdir()
            mpf.transferTo(new File("/hubbub/images/${params.userId}/picture.${splitType[1]}"))
        }

    }
}

Iполучаю сообщение об исключении на

if (exists) {
        mpf.transferTo(new File("/hubbub/images/${params.userId}/picture.${splitType[1]}"))
}

Итак, почему происходит эта ошибка, так как я просто сопоставляю действительный существующий путь, а также допустимое имя файла и расширение?

1 Ответ

5 голосов
/ 01 апреля 2012

Почему вы думаете, что преобразование объекта File в Boolean возвращает существование файла?

Попробуйте

    File dir = new File("/hubbub/images/${params.userId}")
    if (!dir.exists()) {
        assert dir.mkdirs()
    }
    mpf.transferTo(new File(dir, "picture.${splitType[1]}"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...