2021-11-11 layui、java下载pdf文件,超级简单。

话不多说,直接上代码!!!!
复制以下代码到你的程序中:

    /**
     * 规章制度-下载pdf文件
     * @param url
     * @param response
     * @throws UnsupportedEncodingException
     */
    @RequestMapping(value="/download")
    public @ResponseBody void invoiceDownload(String url,HttpServletResponse response ) throws UnsupportedEncodingException{
        ServletOutputStream out = null;
        InputStream ips = null;
        URL oracle = null;
        try {
            oracle = new URL(url);
        } catch (MalformedURLException e1) {
            e1.printStackTrace();
            return ;
        }
        HttpURLConnection uc = null;
        try {
            uc = (HttpURLConnection) oracle.openConnection();
        } catch (IOException e1) {
            e1.printStackTrace();
            return ;
        }
        try {
            uc.setDoInput(true);//设置是否要从 URL 连接读取数据,默认为true
            uc.connect();
            //文件名
            String newFileName = fileName(url);
            //newFileName="电子发票.pdf";//重命名电子发票
            ips =  uc.getInputStream();
            response.setContentType("multipart/form-data");
            //为文件重新设置名字,采用数据库内存储的文件名称
            response.addHeader("Content-Disposition", "attachment; filename=\"" + new String(newFileName.getBytes("UTF-8"),"ISO8859-1") + "\"");
            out = response.getOutputStream();
            //读取文件流
            int len = 0;
            byte[] buffer = new byte[1024 * 10];
            while ((len = ips.read(buffer)) != -1){
                out.write(buffer,0,len);
            }
            out.flush();
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            try {
                out.close();
                ips.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return ;
    }
    /**
     * 获取文件名字
     * @param fileName
     * @return
     */
    private String fileName(String fileName){
        String ext = null;
        if (StringUtils.isNotEmpty(fileName)) {
            int offset = fileName.lastIndexOf("/");
            if (offset != -1 && offset != fileName.length() - 1) {
                ext = fileName.substring(offset + 1);
            }
        }
        return ext.toLowerCase();
    }

layui调用接口并传参url即可。

<a href="/api2/standard/download?url={{d.documentUrl!=null?d.documentUrl:null}}"  style="cursor:pointer;">下载</a>

效果图:
在这里插入图片描述
在这里插入图片描述

原文转载:原文转载

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值