先说下需求:正常点击免责声明是下载的文件,根据用户需求是点击预览,所以这里利用phpword生成一个静态页面并进行预览。不多说,直接上代码附带类文件。

类文件:https://pan.baidu.com/s/1yhZu5JyrtIfKnGllRblPtg  提取码:fbu3  把类文件放在vendor目录下。

html代码:

<!-- 这里是点击下载的html代码,隐藏域是当前的id -->
<p><input type="hidden" value="{$vo.file_id}" class="file_id"><a href="#" class="btn btn-primary click">点击下载</a></p> <script type="">
//触发ajax把id传到控制器
$('.click').click(function(){
id = $(this).prev().val();
$.ajax({
type: "POST",
url: "{:url('home/Single/ajax')}",
data: {id:id},
dataType: "json",
success: function (msg) {
window.open(msg.html)//新页面打开预览
}
});
return false;
})
</script>

  后台代码:

//首先头部引用类
use PhpOffice\PhpWord\IOFactory;
use PhpOffice\PhpWord\PhpWord; public function ajax(){
//根据id查询数据库存的文档路径
$file_id = $_POST['id'];
$info = M('download_file')->where(['file_id'=>$file_id])->find();
$IOFactory = new PhpWord();
$phpWord = \PhpOffice\PhpWord\IOFactory::load('./'.$info['file_url']);
$xmlWriter = \PhpOffice\PhpWord\IOFactory::createWriter($phpWord, "HTML");
//生成hello.html文件路径
$xmlWriter->save('./Public/doc/hello.html');
//判断文件是否存在,额庵后传到前台
if(file_exists('./Public/doc/hello.html')){
$html='/Public/doc/hello.html';
$dataa = array('html'=>$html,'url'=>$url);
echo json_encode($dataa); }else{
$dataa = array('html'=>'0');
echo json_encode($dataa);
}
}

  

php phpword生成html页面的更多相关文章

  1. 浅谈php生成静态页面

    一.引 言 在速度上,静态页面要比动态页面的比方php快很多,这是毫无疑问的,但是由于静态页面的灵活性较差,如果不借助数据库或其他的设备保存相关信息的话,整体的管理上比较繁琐,比方修改编辑.比方阅读权 ...

  2. .NET生成静态页面并分页

    因为公司的产品用asp开发, 前一段时间用asp写了一个生成静态页面并分页的程序,但缘于对.net的热爱,写了这个.net下的生成静态页面并分页的程序. 主要的原理就是替换模板里的特殊字符. 1.静态 ...

  3. .net 生成 静态页面

    .net 生成 静态页面 <!--Main.Aspx--> <%@ page language="C#" %> <%@ import namespac ...

  4. C#根据网址生成静态页面

    HoverTree开源项目中HoverTreeWeb.HVTPanel的Index.aspx文件 是后台管理的首页. 包含生成留言板首页,以及显示用户名,退出等功能. 根据网址生成页面的方法: boo ...

  5. 用 Smarty 生成静态页面入门介绍

    why Smarty? 随着公司首页(以下简称首页)流量越来越大,最近开始考虑使用后台语言生成静态页面的技术. 我们知道,一个简单页面一般是一个 .html(或者 .htm ..shtml)后缀的文件 ...

  6. 比较详细PHP生成静态页面教程

    一,PHP脚本与动态页面. PHP脚本是一种服务器端脚本程序,可通过嵌入等方法与HTML文件混合, 也可以类,函数封装等形式,以模板的方式对用户请求进行处理.无论以何种方式,它的基本原理是这样的.由客 ...

  7. 怎么让dedecms生成html页面更快些

    如何让织梦生成html页面更快些呢? 1.把文章模板里的“相关文章”.“热点文章”.“推荐文章”这类的标记删除了,用其它方式,如:shtml.js 引入 2.把织梦模板里用标记表示的模板路径.php附 ...

  8. .NET生成静态页面的方案总结

    转载自:http://www.cnblogs.com/cuihongyu3503319/archive/2012/12/06/2804233.html 方法一:在服务器上指定aspx网页,生成html ...

  9. [转]把动态页面.aspx 生成静态页面.html

    本文转自:http://blog.csdn.net/csb5201314/article/details/5391688 如果要把主页Index.aspx 生成静态页面 Index.html后输出会提 ...

随机推荐

  1. 51单片机外部中断INT0实例(汇编程序)

    ;普中51开发板 ;单片机的P3.2(INT0)引脚与按键K3脚连接 ;用汇编语言实现:按一次K1外部中断INT0响应一次,LED显示值加1(十进制), ;前提是共阴数码LED第一位,需要设定,由P0 ...

  2. jQuery判断checkbox是否选中的4种方法

    方法一: ).checked) { // do something } 方法二: if($('#checkbox-id').is(':checked')) { // do something } 方法 ...

  3. mac终端命令--常用快捷键

    Ctrl + c        取消当前行输入的命令,进入下一行.或者中止一个错误的或者发疯的命令 Ctrl + a        光标移动到行首(Ahead of line),相当于通常的Home ...

  4. demo_service

    <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit ...

  5. leetcode骚题目列表

    114,二叉树原地前序遍历转链表 令人不舒服的空间限制 4,O(logn)寻找两个数组的中位数 感觉诡异又很其妙的二分 279,判断一个数可拆成最少几个平方数的和 有O(n)解法,如果把sqrt视为O ...

  6. centos7.5部署ELk

    第1章 环境规划 1.1 ELK介绍       ELK是ElasticSerach.Logstash.Kibana三款产品名称的首字母集合,用于日志的搜集和搜索.      Elasticsearc ...

  7. tp3.2控制器返回时关闭子窗口刷新父页面

    我的项目操作都是在子页面弹窗中执行,当我操作成功或失败时,都要关闭当前子窗口,刷新父页面: $this->assign('jumpUrl',"javascript:window.par ...

  8. $router和router区别

    this.$router.push({path:'/'})//这个是js编程式的一种动态跳转路由方式,是全局的路由对象. 而写在router声明文件中的router是自己定义实例化的一个对象.可以使用 ...

  9. 解析crontab php自动运行的方法

    crontab是linux自带的一个命令 使php自动运行的方法php自动运行有很多方法,这里分以下DZ以及一些通过系统完成的方法和直接触发运行驻留系统的方法.Discuz后台有个计划任务,可以使ph ...

  10. 【Shiro】四、Apache Shiro授权

    1.授权实现方式 1.1.什么是授权 授权包含4个元素(一个比较流行通用的权限模型) Resources:资源 各种需要访问控制的资源 Permissions:权限 安全策略控制原子元素 基于资源和动 ...