Как остановить двойное кодирование на пути к файлу? - PullRequest
2 голосов
/ 27 февраля 2020

Я хочу получить файл в объекте ресурса с помощью UrlResource, но метод .toUri кодирует путь таким образом, что файл существует, но все равно не может получить.

Мой код :

val filepath = Paths.get(getClass.getClassLoader.getResource("some file4216.pdf").getPath)

val resource : Resource = new UrlResource(filepath.toUri)

val contentType = "application/pdf"

ResponseEntity.ok()
    .contentType(MediaType.parseMediaType(contentType))
    .header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"" + resource.getFilename + "\"")
    .body(resource)

Он будет кодировать пространство как "% 20", но затем также выполняет кодирование и преобразует "%" в "% 2520". И поэтому файл не найден.

Укажите путь ниже:

/home/user/Live_Projects/some-project/some-project-api/build/resources/main/some%2520file4216.pdf

Я хочу только %20, а не %2520.

...