zoukankan      html  css  js  c++  java
  • 浏览器下载服务端文件

    package com.excel.controller;

    import com.alibaba.excel.ExcelWriter;import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;

    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.OutputStream;

    /**
    * 下载文件
    * @author : tony
    * @version :1.0
    */
    @RequestMapping("/excel")
    @RestController
    public class ExcelController {

    /**
    * 下载已经生成好的文件
    * @param request
    * @param response
    */
    @GetMapping("/downExcel.action")
    public void download1Excel(HttpServletRequest request, HttpServletResponse response){
    OutputStream out = null;
    ExcelWriter excelWriter = null;
    File file = null;
    FileInputStream input = null;
    try {
    out = response.getOutputStream();
    //设置ConetentType CharacterEncoding Header,需要在out.write()之前设置
    // 设置头信息
    response.setCharacterEncoding("UTF-8");
    // 告诉浏览器用什么软件可以打开此文件
    response.setHeader("content-Type", "application/vnd.ms-excel");

    // 下载文件的默认名称
    response.setHeader("Content-Disposition", "attachment;filename="+ URLEncoder.encode(fileName, "UTF-8"));


    //本地已存在的文件
    file = new File("excelByModel.xlsx");
    input = new FileInputStream(file);
    int len;
    byte[] bytes = new byte[1024];
    while((len =input.read(bytes))> 0){
    out.write(bytes,0,len);
    }
    out.flush();
    }catch (Exception e){
    e.printStackTrace();
    }finally {
    try {
    input.close();
    } catch (IOException e) {
    e.printStackTrace();
    }
    try {
    out.close();
    }catch (Exception e){
    e.printStackTrace();
    }
    }
    }
    }

    ******未经允许,禁止转载 否则追究法律责任******
  • 相关阅读:
    Java重温学习笔记,Java8新特性:函数式接口
    Java重温学习笔记,Java8新特性:Lambda 表达式
    236. 二叉树的最近公共祖先
    230. 二叉搜索树中第K小的元素
    117. 填充每个节点的下一个右侧节点指针 II
    116. 填充每个节点的下一个右侧节点指针
    111. 二叉树的最小深度
    109. 有序链表转换二叉搜索树
    剑指 Offer 68
    1367. 二叉树中的列表
  • 原文地址:https://www.cnblogs.com/demo-tt/p/14072242.html
Copyright © 2011-2022 走看看