Почему, если я загружаю изображение, Spring Boot выполняет поиск на моем компьютере?

#java #spring #image

#java #spring #изображение

Вопрос:

Я создаю приложение spring boot, в котором в определенный момент пользователь должен ввести файл (изображение, текст или что угодно, что он хочет), и этот файл в конечном итоге будет автоматически отправлен мне по почте. Я использовал это в своем HTML-шаблоне, чтобы запросить вывод;

 <div class="custom-file">
 <input type="file" class="custom-file-input"
                        name="6?-BBtn9E@=G8Yua" id="6?-BBtn9E@=G8Yua"> <label
                        class="custom-file-label" for="6?-BBtn9E@=G8Yua">Select file</label>
                </div> 
 

Как вы можете видеть, я использую bootstrap.

В моем контроллере загрузки spring я получаю этот параметр таким образом;

 @RequestParam(name = "6?-BBtn9E@=G8Yua", required = false) File userFile
 

Тогда почта будет отправляться регулярно (я ранее тестировал, что отправка почты работала, когда у меня все еще не было этой проблемы с вводом файла), поэтому я просто покажу вам прикрепление;

 HtmlEmail email = new HtmlEmail();
email.attach(userFile);
email.send();
 

Однако, когда я отправляю, я получаю это исключение IOException в консоли;

 java.io.IOException: "/Users/username/Eclipse-Workspace/Website/file.txt" does not exist
 

Я нашел файл с именем file.txt , и поскольку я запускаю это на компьютере Mac, путь: /Users/{myUsername}/{Eclipse-Workspace}/{Spring-Boot-Project/{file-name} .
Я хочу, чтобы Spring Boot выполнял поиск вне проекта, а не только внутри него.

Почему это происходит? Спасибо за чтение!

Комментарии:

1. Я думаю, вам нужно прояснить несколько вещей. В вашем RequestParam есть специальные символы, также вы можете использовать MultipartFile dto для получения объекта File.

2. Сэр, я попробовал ваш совет, однако для метода attach() требуется приведение к методу attach() (поскольку для этого требуется файл, а не MulitpartFile), и когда я пытаюсь отправить, я получаю исключение nullpointer…

Ответ №1:

Когда вы хотите, чтобы Spring просматривал папку проекта, которую вы хотите: "file:/Users/username/Eclipse-Workspace/Website/file.txt" .