Итак, я делал веб-приложение для обмена файлами, используя Spring Boot, и вот как я облегчил получение файлов из базы данных. Я остановлюсь именно на вашей проблеме, потому что она очень похожа на ту, с которой я столкнулся несколько дней назад.
Во-первых, я делаю класс POJO Files
, который имеет такие детали, как filename
, lastmodified
инекоторые другие, которые не имеют отношения к вашей проблеме здесь.
Я получаю файлы из базы данных, используя класс DAO, добавляю вышеупомянутые атрибуты в ArrayList и возвращаю ArrayList обратно в класс Controller. В классе Controller, используя объект request
, я делаю следующее: request.setAttribute("files", files);
Теперь в моем jsp-файле я использую JSTL для получения таких файлов:
<c:forEach var="j" items="${files}">
<td>
<a href="resources/files/${j.getFilename()}" target="_blank" rel="noopener noreferrer">${j.getFile()}</a>
</td>
</c:forEach>
resources/files/
- это путь, по которому мои файлы хранятся после загрузки и использования target="_blank" rel="noopener noreferrer"
позволяет мне открывать файлы (файлы, которые браузер позволяет открывать, такие как pdf и текстовые файлы) в новой вкладке, а те, которые не могут быть открыты, получают автоматическискачал.