-1

Вот код метода:

 @Override
    public void accountImport(String fileName, AccountDto accountDto) {
        try(FileWriter writer = new FileWriter(fileName, false))
    {
        Integer id = accountDto.getId();
        String stId= id.toString();

        Long number = accountDto.getNumber();
        String stNumber = number.toString();

        String date = accountDto.getDate();

        String beneficiary = accountDto.getBeneficiary();

        String comment = accountDto.getComment();

        Long amount = accountDto.getAmount();
        String stAmount = amount.toString();

        String currency = accountDto.getCurrency();

        String finall = stId+","+stNumber+","+date+","+beneficiary+","+comment+","+stAmount+","+currency;
        for (int i = 0; i < finall.length(); i++)
            writer.write(finall.charAt(i));

    } catch (IOException e) {
        throw  new ValidateException("ERROR");
    }

}

Вот код контроллера:

@PostMapping("/import")
    public  ResponseEntity importAccount(@RequestParam(name = "fileName",required = false) String fileName, @RequestBody AccountDto accountDto){
        accountServiceImport.accountImport(fileName,accountDto);
        return  new ResponseEntity(HttpStatus.OK);
    }

Вот запрос в Postman:

{
    "fileName": "C:\\Users\\Admin\\Documents\\task\\text.csv",
  "account":{
    "id": 0,
    "number": 84822,
    "date": "2022-04-06  22:58 ",
    "beneficiary": "Bob",
    "comment": "For",
    "amount": 8482200,
    "currency": "USA"
    }

}

Loki
  • 1

1 Answers1

1

Могу предположить, что вы неправильно пользуетесь постманом (RequestParam надо передавать в другой вкладке). Из-за этого не передается имя файла и FileWriter не может его открыть. Ниже я привел пример скриншотов, как надо сформулировать ваш запрос в Postman.

для параметров запросов

для тела запроса

P.S В логе, который вы скинули написано, что в запросе присутствуют символы, которые нельзя использовать. Чтобы разрешить их использование, добавьте в файл конфигурации application.yaml следующие строки:

server:
    relaxed-query-chars: \

Похожий вопрос: https://stackoverflow.com/questions/54287922/the-valid-characters-are-defined-in-rfc-7230-and-rfc-3986

Также можете попробовать вместо url ввести закодированный вариан строки: C%3A%5C%5CUsers%5C%5CAdmin%5C%5CDocuments%5C%5Ctask%5C%5Ctext.csv.