我试图通过我的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());
}
使用示例网址,例如
example.com/file/out2KP2_1.mp4
我收到错误:
访问/file/out2KP2_1.mp4时出现问题。原因是:
resources \ files \ out2KP2_1引起:
java.nio.file.NoSuchFileException:resources \ files \ out2KP2_1 at sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:79)
如果我向url和requestMapping添加尾随/,它可以工作,但在iOS和其他一些地方,视频播放器似乎不喜欢加载带有斜杠的文件,因此它不会适合我的目的。
任何帮助appriciated。
答案 0 :(得分:0)
感谢降价。拿它你不知道答案!?
这是Spring的一个问题,你必须添加:。+到文件URL变量
即。 @RequestMapping(value =“/ file / {file:。+}”,method = RequestMethod.GET)