Как скачать файл с сервера Java Spring?

Какой и как метод нужно написать с использованием get запроса по имени файла, чтобы скачать ее. P.S. В проекте не используется БД Заранее спасибо!

DirectorController.java

@Controller
@PreAuthorize("hasAnyAuthority('DIRECTOR')")
public class DirectorController {
    @Value("${upload.path}")
    private String uploadPath;

    public static List<Order> dirOrder = new LinkedList<>();

    @GetMapping("/director")
    public String download(Map<String, Object> model) {
        dirOrder.clear();
        for (int i = 0; i < MainController.list.size(); i++) {
            if ((MainController.list.get(i).getOrderExecutor().equalsIgnoreCase("DIRECTOR"))) {
                dirOrder.add(MainController.list.get(i));
            }
        }
        Iterator<Order> orders = dirOrder.iterator();
        model.put("orders", orders);
        return "/director";
    }

    @PostMapping("/director")
    public String add(@RequestParam String orderName, @RequestParam String orderOwner, @RequestParam String orderExecutor, Map<String, Object> model, @RequestParam("orderFile") MultipartFile file) throws IOException {
        if (MainController.checkName(orderName)) {
            Order order = new Order(orderName, orderOwner, orderExecutor);
            if (file != null) {
                File upFile = new File(uploadPath);
                if (!upFile.exists()) {
                    upFile.mkdir();
                }
                String uuid = UUID.randomUUID().toString();
                String fileName = uuid + "." + file.getOriginalFilename();
                File newFile = new File(uploadPath + "/" + fileName);
                file.transferTo(newFile);
                Cript.Cript(newFile);
                order.setOrderFile(fileName);
            }
            order.setStatus("Активный");
            MainController.list.add(order);
            dirOrder.clear();
            for (int i = 0; i < MainController.list.size(); i++) {
                if ((MainController.list.get(i).getOrderExecutor().equalsIgnoreCase("DIRECTOR"))) {
                    dirOrder.add(MainController.list.get(i));
                }
            }
            Iterator<Order> orders = dirOrder.iterator();
            model.put("orders", orders);
            return "director";
        }
        Iterator<Order> orders = dirOrder.iterator();
        model.put("orders", orders);
        return "director";
    }

    @PostMapping("/dircheak")
    public String cheakResult(@RequestParam String orderName, Map<String, Object> model) {
        for (int i = 0; i < MainController.list.size(); i++) {
            if (MainController.list.get(i).getOrderName().equalsIgnoreCase(orderName)) {
                MainController.list.get(i).setStatus("На доработку от директора");
                MainController.list.get(i).setOrderExecutor("HEAD");
                MainController.list.get(i).setOrderOwner("DIRECTOR");
            }
        }
        dirOrder.clear();
        Iterator<Order> orders = dirOrder.iterator();
        model.put("orders", orders);
        return "director";
    }

    @PostMapping("/direnter")
    public String enterResult(@RequestParam String orderName, Map<String, Object> model) throws FileNotFoundException {
        for (int i = 0; i < MainController.list.size(); i++) {
            if (MainController.list.get(i).getOrderName().equalsIgnoreCase(orderName)) {
                MainController.list.remove(i);
            }
        }
        dirOrder.clear();
        Iterator<Order> orders = dirOrder.iterator();
        model.put("orders", orders);
        return "director";
    }
}

director.ftl

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Director</title>
</head>
<body>
<div align="right">
    <form action="/logout" method="post">
        <input type="hidden" name="_csrf" value="${_csrf.token}"/>
        <input type="submit" value="Sign out">
    </form>
</div>
<div align="center">
    <form method="post" enctype="multipart/form-data">
        <input type="text" name="orderName" placeholder="Введите название приказа:"/>

        <select name="orderOwner">
            <option value="DIRECTOR">Директор</option>
        </select>

        <select name="orderExecutor">
            <option value="HEAD">Глава отдела</option>
            <option value="SPECIALIST">Специалист</option>
        </select>

        <input type="file" name="orderFile">
        <input type="hidden" name="_csrf" value="${_csrf.token}"/>
        <button type="submit">Добавить</button>
    </form>
</div>
<table align="center" border="1" cellpadding="5">
    <tr>
        <th>Приказ</th>
        <th>От</th>
        <th>К</th>
        <th>Статус</th>
    </tr>
    <#list orders as order>
        <tr>
            <td>${order.orderName}</td>
            <td>${order.orderOwner}</td>
            <td>${order.orderExecutor}</td>
            <td>${order.status}</td>
        </tr>
    </#list>
</table>
<br>
<div align="center">
    <form action="/dircheak" method="post">
        <input type="text" name="orderName" placeholder="Введите название приказа:"/>
        <input type="hidden" name="_csrf" value="${_csrf.token}"/>
        <button type="submit">Отправить на доработку</button>
    </form>
</div>
<br>
<div align="center">
    <form action="/direnter" method="post">
        <input type="text" name="orderName" placeholder="Введите название приказа:"/>
        <input type="hidden" name="_csrf" value="${_csrf.token}"/>
        <button type="submit">Принять решение.</button>
    </form>
</div>
</body>
</html>

Ответы (0 шт):