Spring MVC - скопируйте изображение в папку WEB-INF / assets - PullRequest
0 голосов
/ 12 июня 2018

Я пытаюсь скопировать изображение в папку активов внутри папки WEB-INF .Следующий код успешно копирует изображения вне проекта, но не может скопировать их в папку WEB-INF.

public static void copyFile(String source, String destination) throws IOException {
        try {
            File sourceFile = new File(source);
            File destinationFile = new File(destination);

            FileInputStream fileInputStream = new FileInputStream(sourceFile);
            FileOutputStream fileOutputStream = new FileOutputStream(destinationFile);

            int bufferSize;
            byte[] bufffer = new byte[512];
            while ((bufferSize = fileInputStream.read(bufffer)) > 0) {
                fileOutputStream.write(bufffer, 0, bufferSize);
            }
            fileInputStream.close();
            fileOutputStream.close();
        } catch (IOException e) {
            throw new IOException(e.getMessage());
        }
    }

Я получаю путь к изображению из запроса Http.

CopyFile.copyFile(imageUrl, "http://localhost:8080/M.S.-Handloom-Fabrics/static/"+imageName+".png");

У меня естьсопоставил ресурсы в dispatcher-servlet.xml

<mvc:resources mapping="/static/**" location="/WEB-INF/assets/"/>

Вот ошибка

Информация: http: \ localhost: 8080 \ MS-Handloom-Fabrics \ static \ TueJun1216_27_54NPT20180.png (неверный синтаксис имени файла, имени каталога или метки тома)

1 Ответ

0 голосов
/ 13 июня 2018
http://localhost:8080/M.S.-Handloom-Fabrics/static/"+imageName+".png"

- это URL, а не путь к файлу, и поэтому он не имеет смысла в качестве параметра для конструктора файлов.

Если вы настроили сервер приложений для взрыва веб-приложения при развертывании, вы можете использоватьServletContext.getRealPath но, поскольку это сообщение SO , вы, скорее всего, не захотите этого делать, поскольку ваши сохраненные файлы будут потеряны при повторном развертывании.

Сохранение их вне веб-приложенияэто путь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...