2016-09-12 3 views
-1

Ich versuche, lokale oder Proxy-Dateien über meine Java-Anwendung zu liefern.Java-Servlet schneidet Dateierweiterung ab

Mit so etwas wie dieses

@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()); 

} 

Mit einer Beispiel-URL wie

example.com/file/out2KP2_1.mp4

ich den Fehler bekommen:

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)

Wenn ich einen nachgestellten/zum hinzufügen URL und requestMapping, es funktioniert, aber auf iOS und ein paar anderen Orten scheint der Videoplayer nicht wie eine Datei mit einem nachlaufenden laden Schrägstrich, damit es meinen Zwecken nicht entspricht.

Jede Hilfe geschätzt.

Antwort

0

Danke für die Markierung. Nimm es, du wusstest die Antwort nicht !?

Es ist ein Problem mit Spring, müssen Sie hinzufügen.: + In die Datei URL-Variable

dh @RequestMapping (value = "/file/{file:.+}", method = RequestMethod.GET)

Verwandte Themen