У меня есть папка «C: \ data» с большим количеством файлов PDF, и я хочу преобразовать эти файлы в класс пружины CommonsMultipartFile.
В моем проекте я использую класс Spring CommonsMultipartFile, чтобы читать файл из запроса и манипулировать им. Я предпочитаю повторно использовать этот проект также для файлов - класс java.
Я сделал:
File folder = new File(path);
File[] listOfFiles = folder.listFiles();
и я хочу преобразовать в: Список CommonsMultipartFile;
Спасибо!!!
Я читал этот ответ раньше. Я хочу найти способ сделать это элегантно для папки с более чем 1000 файлами. эти примеры делают преобразование для каждого файла
В моем понимании у вас здесь неправильный подход. В вашем контроллере вы получаете CommonsMultipartFile, но вы передаете в свою службу File или byteStream. Таким образом вы можете создать второй тест / приложение, которое использует ту же службу, но передает файлы с диска. Таким образом вы можете зафиксировать контроллер, поскольку это всего лишь уровень для передачи данных в вашу службу, он не должен содержать никакой повторно используемой логики, а только делегировать данные другим компонентам.
Я объясню ситуацию: у меня есть контроллер, который содержит файлы в запросе, и я анализирую его до списка CommonsMultipartFile. после того, как я использую некоторые функции utils для данных, которые работают в CommonsMultipartFile. Я хочу проделать то же самое и с файлами с диска. по этой причине я хочу преобразовать файлы в CommonsMultipartFile.
Зачем вам нужен CommonsMultipartFile вместо MultipartFile? Что касается элегантного способа потоковой передачи, это будет Arrays.stream (folder.listFiles ()). Map (this :: mapToMultipartFi файл) .forEach (this :: pr ocessFile), когда вы обрабатываете все как поток, вы будете работать с одним файлом за раз, поэтому независимо от того, сколько у вас есть, это не имеет значения.




Список CommonsMultipartFiles? Вот статья о том, как его преобразовать: stackoverflow.com/questions/16648549/…