java - 发送压缩文件 Spring

标签 java spring http spring-mvc zip

我想通过我的 spring Controller 发送一个已经存在的压缩文件,但我不断收到这些错误消息org.springframework.web.HttpMediaTypeNotAcceptableException:无法找到可接受的表示NoHandlerFoundException 这会导致 404 响应。我有什么遗漏的吗?这是我的 Controller 代码

@RequestMapping(
        method = RequestMethod.GET,
        value = BASE + "/download",
        produces = "application/zip"
)
@ResponseBody
public void sendZippedFile(HttpServletResponse response) throws IOException {
    try{
        File file = new File("C:\\Users\\me\\test.zip");
        FileInputStream is = new FileInputStream(file);
        response.setContentType("application/zip");
        response.setHeader("Content-Disposition","inline; filename=" + file.getName());
        response.setHeader("Content-Length", String.valueOf(file.length()));
        FileCopyUtils.copy(is, response.getOutputStream());
    }catch (IOException e){
        response.sendError(HttpServletResponse.SC_NOT_FOUND);
    }
}

我的方法中的断点甚至没有达到。

最佳答案

你需要这样的东西:

@RequestMapping("/download")
public void download(HttpServletResponse response) throws IOException {

        FileInputStream inputStream = new FileInputStream(new File("C:\\Users\\me\\test.zip"));

        response.setHeader("Content-Disposition", "attachment; filename=\"test.zip\"");
        response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);

        ServletOutputStream outputStream = response.getOutputStream();
        IOUtils.copy(inputStream, outputStream);

        outputStream.close();
        inputStream.close();
}

关于java - 发送压缩文件 Spring,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45419170/

相关文章:

java - 创建一个临时文件,然后使用 FTP (Java webapp) 上传

swift - 更新用http加载的注释

javascript - 如何从 JSON 数组中获取数据并在表中显示数据?

java - CRUD 存储库不存储来自 mySQL 的文件

java - 从 WCF 和 Biztalk 中的 WSDL 导入键/值复杂类型定义

java - Spring WAR 不创建 BuildProperties Bean

spring - Java Spring AOP : Using CustomizableTraceInterceptor with JavaConfig @EnableAspectJAutoProxy, 不是 XML <aop:advisor>

AngularJS 同步调用

java - 通过物体增加时间

java - 如何在 XML Spring 中正确使用 SpEL