我正在开发一个应用程序,从我的服务器做一些mp3流。我希望用户不要下载整个mp3文件,所以字节部分写入响应的OutputStream。
我知道这也与HTTP头和范围有关,所以我找到了this class,它应该可以工作。
然而,我使用的是Spring MVC控制器,它似乎没有按预期工作:文件已完全下载,并且在一个用户请求中有两个提交给控制器的请求,但以下情况除外:
java.net.SocketException: Connection reset by peer: socket write error
我知道CommonsMultipartResolver的存在,但是我所发现的都是用于上传文件,而不是下载。我的问题是,Spring中有什么东西可以轻松地做到这一点吗?
PD:我在使用上面提到的类的地方附加了代码
@RequestMapping(value = "merge/{name:.+\\.mp3}")
public void playMerged( @PathVariable("name") String audioName, HttpServletRequest request,
HttpServletResponse response) {
String mergedAudioPath = service.getMergedAudio(audioName);
MultipartFileSender.fromPath(Paths.get(mergedAudioPath)).with(request).with(response).serveResource();
}
谢谢!
1条答案
按热度按时间v09wglhw1#
断开内容多部分的一种方法如下: