2016-11-26 3 views
0

Я пытаюсь использовать метод transferTo на MultipartFile, но у меня возникают проблемы с этим. Ниже мой код:Проблема передачи многостраничного файла в другое место

String videoName = UUID.randomUUID().toString(); 

File tempVideoFile = new File("src/main/resources/static/campaigns/" + videoName); 
//multipart file is video 
video.transferTo(tempVideoFile); //this line is what causes an error 

Это заканчивается бросая IOException говоря, что JVM не может найти указанный путь. Вот ошибка:

Invalid file directoryjava.io.IOException: java.io.FileNotFoundException: C:\Users\Jake\workspace\Test App\src\main\resources\static\temp\work\Tomcat\localhost\ROOT\Test App\src\main\resources\static\campaigns\db95aad3-a3ba-489a-a02e-83f5beece9a7 (The system cannot find the path specified) 

не 100% уверен, почему это не работает, но я считаю, что правильный каталог должен быть src\main\resources\static\campaigns\db95aad3-a3ba-489a-a02e-83f5beece9a7 вместо одного внутри каталога Tomcat, но я не уверен.

Любые идеи относительно того, почему это не сработает? Путь src\main\resources\static\campaigns\ существует, поэтому я не уверен, почему.

+0

Используйте абсолютный путь. Не полагайтесь на каталог, из которого запускается Tomcat. И не храните данные, которые пользователь загружает в источники вашего проекта. Это бессмысленно. После развертывания все, что у вас есть, - это военный файл, развернутый под tomcat. Нет исходного проекта. И даже тогда, uplodaded данные не являются частью источников проекта. Это данные. –

+0

@JBNizet Я собираюсь разместить на AWS, поэтому я не думаю, что могу использовать абсолютный путь. И я не храню его в исходном каталоге. Я копирую многостраничный файл в источник временно, поэтому я могу проверить длину видео, создать эскиз, загрузить в AWS, а затем удалить временный файл. Есть ли лучший способ сделать это? –

+0

Опять же, после развертывания у вас не будет какой-либо исходной директории. Источники существуют только на рабочих станциях разработчиков. Не на производственных машинах. Если в AWS даже есть файловая система, тогда создайте реальный временный файл в месте, которое, как гарантируется, будет существовать и может быть записано для временных файлов: https://docs.oracle.com/javase/8/docs/api/ Java/IO/file.html # createTempFile-java.lang.String-java.lang.String-. Или в настраиваемом каталоге, который, как вы знаете, будет существовать в процессе производства. –

ответ

-2

путь должен быть: SRC/главная/ресурсы/статические/кампании/

использование/это слэш вместо этого \

Какой редактор вы используете? Eclipse не разрешено \ this во время компиляции

+0

Что ты говоришь о ...? Я использовал косые черты в моем коде. –

Смежные вопросы