• jar包内的文件导出的注意点


    1.截取文件名 windows 和linux 通用

            String fp[] = filePath.replaceAll("\\","/").split("/");
            String fileName = filePath;
            if (fp.length > 1) {
                fileName = fp[fp.length - 1];
            }

    2.文件名称转码

            response.setHeader("Content-Disposition", "attachment;filename="+new String(fileName.getBytes(),"iso-8859-1"));

    3.直接按路径下载会报这样的错误

    product-controller-0.0.1-SNAPSHOT.jar!BOOT-INFclasses!	emplate	ext.xls (No such file or directory)
    

    解决方案

    不读取工程中的文件地址,直接将对应文件转化为二进制流进行操作。

    InputStream is = null;
            is = AppUtil.class.getClassLoader().getResourceAsStream(filePath);

    4.附完整文件下载代码

    public static void download(HttpServletResponse response, String filePath) throws IOException {
    
    
            String fp[] = filePath.replaceAll("\\","/").split("/");
            String fileName = filePath;
            if (fp.length > 1) {
                fileName = fp[fp.length - 1];
            }
            //下载机器码文件
            response.setHeader("conent-type", "application/octet-stream");
            response.setContentType("application/octet-stream");
            response.setHeader("Content-Disposition", "attachment;filename="+new String(fileName.getBytes(),"iso-8859-1"));
    
            OutputStream os = response.getOutputStream();
            BufferedOutputStream bos = new BufferedOutputStream(os);
            InputStream is = null;
            is = AppUtil.class.getClassLoader().getResourceAsStream(filePath);
            BufferedInputStream bis = new BufferedInputStream(is);
    
            int length = 0;
            byte[] temp = new byte[1 * 1024 * 10];
    
            while ((length = bis.read(temp)) != -1) {
                bos.write(temp, 0, length);
            }
            bos.flush();
            bis.close();
            bos.close();
            is.close();
        }
  • 相关阅读:
    jvm05
    jvm04
    jvm03
    jvm02
    jvm01
    rabbitmq-01
    lock接口认识及可重入锁的实现
    volitile的使用
    自旋锁,死锁与重入锁
    上机实验4--求序列的最大元素和最小元素
  • 原文地址:https://www.cnblogs.com/zhucww/p/9208936.html
Copyright © 2020-2023  润新知