2016-09-12 6 views
-1

Я пытаюсь обслуживать локальные или прокси-файлы через мое приложение Java.Java-сервлет отключает расширение файла

С чем-то вроде этого

@ResponseBody 
@RequestMapping(value = "/file/{file}", method = RequestMethod.GET) 
public void doGet(HttpServletRequest request, HttpServletResponse response,@PathVariable("file") String f) throws IOException { 

    String filename = URLDecoder.decode(f, "UTF-8"); 
    File file = new File("resources/files/", filename); 
    response.setHeader("Content-Type", "video/mp4"); 
    response.setHeader("Content-Length", String.valueOf(file.length())); 
    response.setHeader("Content-Disposition", "inline; filename=\"" + file.getName() + "\""); 
    Files.copy(file.toPath(), response.getOutputStream()); 

} 

с примером URL, такие как

example.com/file/out2KP2_1.mp4

я получаю ошибку:

Problem accessing /file/out2KP2_1.mp4. Reason:

resources\files\out2KP2_1 Caused by:

java.nio.file.NoSuchFileException: resources\files\out2KP2_1 at sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:79)

Если добавить завершающую/к url и requestMapping, это работает, но на iOS и в некоторых других местах видеоплеер, похоже, не любит загружать файл с завершающим слэш, чтобы он не соответствовал моим целям.

Любая помощь appriciated.

ответ

0

Спасибо за отметку. Послушайте, вы не знали ответа !?

Это проблема с весны, вы должны добавить:. + В файл URL переменной

т.е. @RequestMapping (значение = "/file/{file:.+}", метод = RequestMethod.GET)