zoukankan      html  css  js  c++  java
  • 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/   就可以了

  • 相关阅读:
    oracle中文显示为问号
    oracle 11g 安装报错(agent_nmhs)
    yum源配置
    ora-00020
    mysql停止正在执行的SQL语句
    linux root用户被锁定
    MySQL8.0 根据ibd文件恢复表结构
    mysql 8.x 开启远程访问和修改root密码、
    个人博客迁移到github
    postman断言方式
  • 原文地址:https://www.cnblogs.com/laorenzhenhaoa/p/8466883.html
Copyright © 2011-2022 走看看