MyHttpUtils.java 1.32 KB
package com.bsth.service.schedule.utils;

import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.net.URLEncoder;

/**
 * 相关Http层的util工具类。
 */
public class MyHttpUtils {
    // 流输出文件
    public static void responseStreamFile(HttpServletResponse response, File file) throws IOException {
        // 流输出导出文件
        response.setHeader("content-type", "application/octet-stream");
        String fileName = file.getName();
        if (MyStringUtils.isContainChinese(fileName)) {
            response.setHeader("Content-Disposition", "attachment; filename*=" + URLEncoder.encode(fileName, "UTF-8"));
        } else {
            response.setHeader("Content-Disposition", "attachment; filename=" + fileName);
        }
        response.setContentType("application/octet-stream");

        try (
                OutputStream os = response.getOutputStream();
                BufferedOutputStream bos = new BufferedOutputStream(os);
                InputStream is = new FileInputStream(file);
                BufferedInputStream bis = new BufferedInputStream(is)
        ) {
            int length;
            byte[] temp = new byte[1024 * 10];
            while ((length = bis.read(temp)) != -1) {
                bos.write(temp, 0, length);
            }
            bos.flush();
        }
    }
}