本地磁盘的pdf转化成流,前端使用layer请求预览

踩坑记录:本地磁盘的pdf转化成流,前端使用layer请求预览

在做这个需求的时候,虽说不难,但踩了不少坑,大概还是自己比较菜的原因,特意将其记载下来

首先,后端不需要引什么jar包,使用的都是io流,将所需要预览的图片,pdf等绝对路径赋值给path
下面贴一下后端代码:(Grovvy语言)


 @RequestMapping(value = "pdfTest", method = RequestMethod.GET)
    void pdfTest(HttpServletRequest request, HttpServletResponse response) {
        response.setContentType("application/pdf")
        FileInputStream inputStream
        OutputStream outputStream
        try {
            String path = "E://xx.pdf"
            inputStream = new FileInputStream(new File(path))
            outputStream = response.getOutputStream()
            byte[] b = new byte[1024]
            while ((inputStream.read(b)) != -1) {
                outputStream.write(b)
            }
        } catch (IOException e) {
            e.printStackTrace()
        } finally { // 释放流
            if (inputStream !=null){
                inputStream.close()
            }
            if (outputStream !=null){
                outputStream.flush()
                outputStream.close()
            }
        }
    }

前端需要自己去引layer的工具包,在这里我就不放了,自己百度,下面贴一下前端代码
                 previewFlow = "/test/pdfTest"   //这## 标题个就是后端controller的地址,切记不要return
                layer.open(
                    type: 2   //2是iframe标签,详细的还需自己去layer官方文档去看
                    ,area: ['1200px', '720px']
                    ,title : "pdf测试"
                    ,closeBtn: true
                    ,id: 1
                    ,content: previewFlow
                    ,maxmin: true
                    ,btn: '关闭'
                    ,btnAlign: 'c'
                    ,shade: 0
                    ,yes: () ->
                        layer.closeAll()
                )
                    效果图:

在这里插入图片描述

                    下面贴一下layer官方文档网址:https://www.layui.com/doc/modules/layer.html#type
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值