专栏首页InvQ的专栏springmvc 文件下载 VS resteasy 文件上传下载

springmvc 文件下载 VS resteasy 文件上传下载

直接上代码

import org.springframework.core.io.InputStreamResource;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.UnsupportedEncodingException;

@Controller
@RequestMapping("/evaluate")
public class EvaluateController {
    private static String templateFilePath = "D:\\temp\\templateFile.xlsx";
    private static String templateFileName = "批量导出模板.xlsx";

    @GetMapping("downloadPathExportTemplate")
    @ResponseBody
    public ResponseEntity<Object> downloadFile() throws FileNotFoundException, UnsupportedEncodingException {

        File file = new File( templateFilePath);
        InputStreamResource resource = new InputStreamResource ( new FileInputStream( file ) );

        HttpHeaders headers = new HttpHeaders();
        headers.add ( "Content-Disposition",String.format("attachment;filename=\"%s",new String(templateFileName.getBytes("GBK"), "ISO-8859-1")));
        headers.add ( "Cache-Control","no-cache,no-store,must-revalidate" );
        headers.add ( "Pragma","no-cache" );
        headers.add ( "Expires","0" );

        ResponseEntity<Object> responseEntity = ResponseEntity.ok()
                .headers ( headers )
                .contentLength ( file.length ())
                .contentType(MediaType.parseMediaType ( "application/txt" ))
                .body(resource);

        return responseEntity;
    }
}

浏览器输入: http://localhost:8080/evaluate/downloadPathExportTemplate

内容无变化

restEasy 文件下载如下:

https://blog.csdn.net/zzhongcy/article/details/19966965

restEasy 文件上传如下: https://blog.csdn.net/zhangzz1127/article/details/17428173

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • springBoot 入门(四)—— 使用 纯注解方式的junit整合测试

    配置类——用来替换xml配置文件 其中的@ComponentScan ,可以加载多个包下spring管理的bean,每个用分号“”和逗号,隔开,如果没有组件...

    MickyInvQ
  • springBoot 入门(六)—— 整合Spring框架开启自带的任务调度器执行任务(注解方式)

    MickyInvQ
  • 基于rest风格对Neo4j进行调用访问之———httpClient

    MickyInvQ
  • SpringBoot开发案例之整合mail队列进阶篇

    前情提要 上一篇文章,我们为了解决实际场景中遇到的问题,使得其更像一个安全高效的邮件服务平台,我们引入了LinkedBlockingQueue队列对邮件发送进行...

    小柒2012
  • SpringBoot开发案例之整合mail队列进阶篇

    上一篇文章,我们为了解决实际场景中遇到的问题,使得其更像一个安全高效的邮件服务平台,我们引入了LinkedBlockingQueue队列对邮件发送进行流量削锋、...

    小柒2012
  • SpringBoot开发案例之整合mail队列进阶篇

    上一篇文章,我们为了解决实际场景中遇到的问题,使得其更像一个安全高效的邮件服务平台,我们引入了LinkedBlockingQueue队列对邮件发送进行流量削锋、...

    小柒2012
  • @EnableDiscoveryClient和@EnableEurekaClient的区别?

    @EnableDiscoveryClient和@EnableEurekaClient的区别?在前面的服务提供者的例子中我们是用@EnableEurekaClie...

    马克java社区
  • SpringBoot系列之异步任务@Async使用教程

    ps:不按照原文进行翻译,根据自己的实践,整合两篇博客,进行说明Springboot异步任务的使用,本博客可以作为异步任务的学习参考

    SmileNicky
  • SpringMvc源码之返回值拦截HandlerMethodReturnValueHandler

    与上篇类似,HandlerMethodReturnValueHandler是对返回值的解析,相关的注解有, 用法也基本一样 先看看源码,打开类RequestRe...

    奕仁
  • SpringCloud gateway跨域配置

    天涯泪小武

扫码关注云+社区

领取腾讯云代金券