spring-mvc访问本地html文件

项目中要用到在线预览word文档,刚开始考虑是要将word转成pdf文件,然后再直接在浏览器打开pdf文档即可,

但是项目部署在Linux下,在网上搜了一下没有找到合适的方法,

后来项目组讨论用POI生成HTML文件,但是生成的HTML文档是额外生成的,浏览器是无法直接访问POI生成的html文件的,

Not allowed to load local resource: file:///D:/images/word/media/image1.png

这个错误给整的明明白白的。

后来尝试

                  out=response.getOutputStream();
                response.setHeader("Pragma", "No-cache");
                   response.setHeader("Cache-Control", "no-cache");
                  response.setDateHeader("Expires", 0);
                 response.setContentType( "text/html;charset=UTF-8" );
                   XHTMLConverter.getInstance().convert(document, out, options);    
                out.flush();
                   out.close();

HTML文件倒是能在页面上显示,但是里面的图片还是显示不出来。404又给我整明白了,因为部署的项目里是没有这些图片的,完全一厢情愿。

没办法了,咨询项目大神,大神就是大神,脑袋都没拍就想到一个方法。

————————————————————

在springmvc-servlet.xml配置文件中

mvc:resources 是加载静态文件的

详见

https://www.cnblogs.com/linnuo/p/7699401.html

在项目中pringmvc-servlet.xml文件里加入

  <mvc:resources mapping="/wordview/**" location="file:D:/POITransforms/" />

将html文件放在固定的D:/POITransforms/里,文件夹可以有子集文件夹,子文件夹名可以是自定义的UUID,

我这边点击预览按钮是弹窗里面嵌入了一个iframe , iframe src路径为:

Util.getPath()+'/wordview/temp/5570c3fba83f464fa383e58cd394f860/transforms.html'

 

另:_________________________________________________________________

//获取项目名称
getPath:function(){
  return location.pathname.match(/\/(.+?)(?=\/)/g)[0];
}

temp/5570c3fba83f464fa383e58cd394f860/transforms.html 这一串是返回给前台的生成的HTML文件路径,是固定在D:/POITransforms/

这样一写齐活了,然后再删除D:/POITransforms/   就可以了

 

posted @ 2018-02-24 16:59  花满园  阅读(748)  评论(0编辑  收藏  举报