继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

使用PDF.JS实现pdf文件在线预览时,报文件被损坏的错误

米脂
关注TA
已关注
手记 492
粉丝 88
获赞 591

首先大概说明一下问题出现的背景:我用PDF.JS实现文件在线预览,参考网上的办法,在jsp文件中使用

  <iframe src="<c:url value="js/generic/web/viewer.html" />?file=<c:url value="${wjlj}" />" width="1024" height="700">

将文件路径以${wjlj}的方式交给pdf.js去处理,刚开始pdf文件是放在web工程下的,用这种方式没发现有什么不对的地方。后来考虑将文件存放到另一个目录下(非web工程内),比如:E:\TEST\下,访问不到pdf

文件了,在网上查询后,在”file=“后加了个”<%=bastPath%>“,变成了这样:

  <iframe src="<c:url value="js/generic/web/viewer.html" />?file=<%=basePath%><c:url value="${wjlj}" />" width="1024" height="700">

就可以了,没问题了。然后我就将项目部署到正式环境下了,结果是在预览pdf1.6及其以前的版本时可以正常预览,但在预览pdf1.7版本的文件时,会报一个错误:”文件被损坏并且无法修复“,刚开始我以为是预

览的文件被损坏了,或者是PDF.JS不支持预览pdf1.7版本的文件。后来报这个错误的越来越多,我就去看错误日志,结果在这行:

  <iframe src="<c:url value="js/generic/web/viewer.html" />?file=<%=basePath%><c:url value="${wjlj}" />" width="1024" height="700">

报文件路径错误。我报着试试的心态把之前加的”<%=bastPath%>“给去掉了,结果就可以正常预览了(开发环境和正式环境都可以)。

总结:刚开始报出来的错误是文件被损坏,误导了我查找问题的方向。不过,我这样的改动,具体是什么原理我暂时还没搞清楚,只是不想再在这块花费太多的时间,但又不想因为时间长了,忘记对这个问题原

因的追寻,故以此记之。希望看到此文,并且对这块比较了解的码友不吝赐教。

作者:jinjunweina

原文链接:https://www.cnblogs.com/jinjunweina/p/10442260.html


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP