相关疑难解决方法(0)

如何在Spring MVC中实现HTTP字节范围请求

我的网站上有视频倒带的问题.

我找出了http标题的问题.

我当前的控制器方法返回视频:

@RequestMapping(method = RequestMethod.GET, value = "/testVideo")
@ResponseBody
public FileSystemResource testVideo(Principal principal) throws IOException {
   return new FileSystemResource(new File("D:\\oceans.mp4"));
}
Run Code Online (Sandbox Code Playgroud)

如何用字节范围支持重写以下代码?

PS

我见过以下示例http://balusc.blogspot.in/2009/02/fileservlet-supporting-resume-and.html

但是这段代码看起来很难,我无法理解.我希望在春天mvc存在方式更简单.

java spring http spring-mvc video-streaming

29
推荐指数
3
解决办法
2万
查看次数

通过 Spring MVC 下载大文件

我有一个下载文件的休息方法。但是,在文件完全复制到输出流之前,似乎不会在 Web 客户端上开始下载,这对于大文件可能需要一段时间。

@GetMapping(value = "download-single-report")
public void downloadSingleReport(HttpServletResponse response) {

    File dlFile = new File("some_path");

    try {
        response.setContentType("application/pdf");
        response.setHeader("Content-disposition", "attachment; filename="+ dlFile.getName());
        InputStream inputStream = new FileInputStream(dlFile);
        IOUtils.copy(inputStream, response.getOutputStream());
        response.flushBuffer();
    } catch (FileNotFoundException e) {
        // error
    } catch (IOException e) {
        // error
    }
}
Run Code Online (Sandbox Code Playgroud)

有没有办法“流式传输”文件,以便在我开始写入输出流时立即开始下载?

我还有一个类似的方法,它将多个文件放入一个 zip 文件中,将每个 zip 条目添加到 zip 流中,并且下载也仅在创建 zip 文件后才开始:

        ZipEntry zipEntry = new ZipEntry(entryName);
        zipOutStream.putNextEntry(zipEntry);
        IOUtils.copy(fileStream, zipOutStream);
Run Code Online (Sandbox Code Playgroud)

java spring spring-mvc

6
推荐指数
1
解决办法
1302
查看次数

FileSystemResource 以内容类型 json 返回

我有以下返回文件的 spring mvc 方法:

@RequestMapping(value = "/files/{fileName}", method = RequestMethod.GET)
public FileSystemResource getFiles(@PathVariable String fileName){

    String path="/home/marios/Desktop/";

    return new FileSystemResource(path+fileName);

}
Run Code Online (Sandbox Code Playgroud)

我希望 ResourceHttpMessageConverter 根据其文档使用八位字节流类型创建适当的响应:

如果 JAF 不可用,则使用 application/octet-stream。

但是,尽管我正确地获取文件没有问题,但结果具有Content-Type: application/json;charset=UTF-8

你能告诉我为什么会这样吗?

(我使用 spring 版本 4.1.4。我没有明确设置任何消息转换器,我知道 spring 默认加载 ResourceHttpMessageConverter 和 MappingJackson2HttpMessageConverter,因为我的类路径中有 jackson 2,因为我有其他 mvc返回 json 的方法。

此外,如果我HttpEntity<FileSystemResource>手动使用和设置内容类型,或者用produces = MediaType.APPLICATION_OCTET_STREAM它指定它工作正常。

另请注意,在我的请求中,我没有指定任何接受内容类型,并且不希望依赖我的客户来做到这一点)

spring spring-mvc

5
推荐指数
1
解决办法
2294
查看次数

标签 统计

spring ×3

spring-mvc ×3

java ×2

http ×1

video-streaming ×1