PHP下载docx文档打开时显示 word2007无法打开Office OpenXML 文件

2023-05-16

症状

我自己的PHP,把word文档存入数据库后,再从数据库下载成docx文件;当打开该文件时(Word2007),出现错误提示:“无法打开Office OpenXML 文件 文件名, 因为内容有错误。”其详细信息:“文件已损坏,无法打开。”在点击<确定>后,又提示:“word在《文件名》中发现无法读取的内容,是否恢复此文档的内容?”点击<是>就可以修复并打开。虽然不影响使用,但感觉不完美,想要修正一下。
下载文档源码如下:

header('Content-Type:text/html;charset=utf-8');
header('Content-disposition:attachment;filename=' . $filename); 
$filesize = filesize($tmp_file);
readfile($tmp_file);
header('Content-length:' . $filesize);	

他山之石

https://blog.csdn.net/wowoj2ee/article/details/4344764摘要:
解决办法:在word入库之前,首先另存为"Word2003或97",然后把另存为后的文档入库;再从数据库读出字节流写文件时,也创建成"Word2003或97",再打开时就没有错误提示啦!

结果

对我的没起作用,不是这个原因。

分析

重新调试网页,发现有多处存在echo var_dump等显示命令,突然想到采用Header下载的时候,需要将网页内容生成文件内容,如果多了一些显示内容,对最后的文件内容就有影响。于是将这些显示命令全部屏蔽或删除,再次下载,打开一切正常。

结论

每个网页最终发布的时候,一定注意将echo print_r var_dump等显示命令屏蔽,否则将会出现不可预估的错误。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PHP下载docx文档打开时显示 word2007无法打开Office OpenXML 文件 的相关文章

  • 保存多对多关系,同步/附加不存在?

    我有以下两个多对多关系的模型 use Illuminate Database Eloquent Model class Permission extends Model The database table used by the mode
  • 如何使用 PHP 对字符串进行 rot13 处理?

    我有一个很大的 php 代码 我想手动对其进行编码和解码 我的问题是 php 代码里面有很多单引号和双引号 因此我在使用时出现错误str rot13 功能如下 那么正确的语法是什么以及如何使用下面的函数进行编码 str rot13 That
  • 使用 php-ews(Exchange Web 服务)在特定日期后获取电子邮件

    在我的 PHP 脚本中 我需要弄清楚如何检索指定消息 ID 之后或特定日期之后的所有电子邮件 两者都可以 我只需要检索自上次抓取收件箱以来的新电子邮件 这个收件箱每天收到数千封电子邮件 而且我在 30 天内无法删除任何电子邮件 对于初始导入
  • 在服务器上找不到本地主机或 phpMyAdmin:如何修复?

    我按照安装说明进行操作PHP MySQL and PHPMyAdmin 但是当我尝试访问时http localhost phpmyadmin 我收到此错误 未找到 在此找不到请求的 URL phpmyadmin 服务器 然后我尝试访问loc
  • PHP WCF 集成

    是不是如果我想支持php客户端访问我的服务 我必须有一个基本的http端点 这是因为php仍然只支持soap 1 1吗 据我所知 自从我使用 PHP 以来已经两年了 情况仍然如此 如果客户端应用程序将使用 PHP 的内置 SoapClien
  • PHP:读取所有传入 HTTP 请求的类 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何在 JavaScript 中创建服务器端进度指示器?

    我想在我的网站中创建一个部分 用户可以在其中进行一些简单的操作update纽扣 这些中的每一个update按钮将发送到服务器 并在幕后进行长时间的处理 当服务器处理数据时 我希望用户有某种进度指示器 例如进度条或文本百分比 我使用 jQue
  • 在哪里可以学习网络编程从入门到精通? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我尝试做教程 但它是无组织且无结构的 我在哪里可以学习 PHP 从初学者到大师 我正在寻找类似的网站w
  • PHP 中标头的使用

    非常简单的问题 这两个 PHP 版本 5 标头调用中哪一个是 最好的 header Not Modified true 304 header HTTP 1 1 304 Not Modified 我很确定第一个是最多价的 但只是好奇如果在 H
  • docker 中的 php Curl 冲突 CURLOPT_FILE 和 CURLOPT_RETURNTRANSFER

    当我使用curl时CURLOPT FILE and CURLOPT RETURNTRANSFER选项 文件为空 没有任何curl错误 fp fopen saveTo w ch curl init fileUrl curl setopt ch
  • 在 foreach 中使用 QueryPath 的多个查找

    我正在使用 QueryPath 和 PHP 这发现 eventdate 没问题 但不会为 dtstart 返回任何内容 qp htmlqp url foreach qp gt find table schedule gt find tr a
  • Facebook API sdk 4.0 - 将照片发布到 Facebook

    我正在尝试创建一个应用程序 用户可以在其中浏览照片并将其从计算机提交到 Facebook 为此 他们首先必须将照片上传到服务器 然后使用 Facebook 请求将此图像发布到 Facebook 我正在使用多部分 表单数据 这就是我到目前为止
  • 通过互联网IP地址从一台计算机访问xampp到另一台计算机

    我试图从另一台计算机访问我的 xampp 它显示为禁止错误 然后我在 google 上搜索答案 因为他们告诉在 apache 文件夹中的 httpd conf 文件中更改一些设置 如下所示 Order Deny Allow Deny fro
  • PHP 接口有属性吗?

    PHP 中的接口有属性 还是只有方法 您可以在 DocBlock 中为接口声明属性 然后 IDE 将提示接口的这些属性 PhpStorm 会这样做 但这不会强制在实现类中实际实现这些字段 例如 property string passwor
  • PHP 检查当前日期是在设定日期之前还是之后

    我从数据库中提取一个日期 其格式为 dd mm YYYY 我想做的是检查当前日期 如果当前日期早于数据库中的日期 则需要打印数据库日期 如果是在之后 则需要打印 继续 有人能指出我正确的方向吗 if strtotime database d
  • 雄辩的第一个 where 子句

    我想知道 Laravel 如何实现雄辩的语法 以便可以静态调用第一个 where 子句User where User where id 23 gt where email email gt first 他们有吗public static f
  • PHP 表单 - 带验证蜜罐

    我有以下内容 效果很好 但对垃圾邮件机器人开放 我想放入蜜罐 而不是验证码 下面的代码适用于验证姓名 电子邮件 消息 但我无法让它与蜜罐一起工作 任何人都可以查看 蜜罐 代码并告诉我如何修复它吗 我希望表单给出 success2 不允许垃圾
  • PHP 拒绝从 var_dump、print 等输出数据

    我目前正在运行 WAMP 服务器 并且在过去的 30 分钟内一直在尝试弄清楚我的项目如何以及为什么不会输出任何指定的 PHP 数据 起初我以为是因为我有一个 htaccess文件的output buffering被禁用 所以我删除了它 仍然
  • 在本地 SDK 服务器上工作时,实时 Google App Engine 上出现 404

    我已经在GAE标准环境上部署了几个PHP应用程序 一切正常 现在我正在部署一个新应用程序 该应用程序位于由gcloudSDK按预期工作 终端命令 dev appserver py log level warning app yaml 问题是
  • 如何在 PHP 5.6 中通过 php.ini 设置“verify_peer_name=false”SSL 上下文选项

    案例 我想打开 SSL 连接localhost而 SSL 证书是 FQDN 的问题 问题 没有进行特殊处理就行 下面的程序失败并显示以下消息 PHP Warning stream socket enable crypto Peer cert

随机推荐

  • 使用Cropper进行图片剪裁上传

    在项目中 xff0c 需要多上传的图片按照比例和尺寸进行裁剪 xff0c 这类场景在一些CMS系统中是比较常见的 xff0c 尤其是大部分的文章现在要适配PC Mobile两种平台 xff0c 文章的封面图等便需要按照尺寸做裁剪 xff0c
  • Element-UI消息提示组件Message在Vuex中的调用实现

    在最近的项目开发中 xff0c 前端部分使用 Vue 开发 xff0c 整个页面基于 Element UI 实现 由于是单页面多组件应用 xff0c 使用了 Vuex 做状态管理 为了页面交互的友好和风格的统一 xff0c 消息提醒使用 E
  • Fork原项目新增分支的同步和推送

    在 Github 或者 Gitlab Fork 项目以后 xff0c 原项目增加了新的分支 xff0c 我们可以通过以下流程将分支同步下来 本项目前提假设我们设置了 remote 的名称为 up 与源项目关联 git remote v or
  • Elasticsearch文档版本冲突原理与解决

    一般我们在更新文档时 xff0c 主要的操作流程时 xff1a 读取文档 gt 修改 gt 提交保存 数据中心等保存的都是最新一次提交的内容 大部分时候 xff0c 这都没有什么问题 但是如果两个或更多的请求同时修改一个文档时 xff0c
  • Protobuf3 使用笔记

    一 和protobuf2比 xff0c 更新的内容 xff1a 1 字段前取消了required和optional两个关键字 xff0c 目前可用的只有repeated关键字 2 不可以现设置默认值了 a string默认为空串 b 枚举默
  • 随笔

    沟通 跨部门沟通 xff0c 首先应确立沟通的目的是双方的有效配合和问题解决的方向 方法 xff0c 去除程序员们自带的问题责任论 xff0c 不能按照 不是我的问题 xff0c 我这OK xff0c 跟我无关 这样的思路去讨论和解决问题
  • Linux内存消耗

    原文 xff1a https web archive org web 20120520221529 http emilics com blog article mconsumption html 本文主要描述如何通过一个合理的方法来测量li
  • Linux安装Docker完整详细教程

    目录 Docker及系统版本 Docker的自动化安装 Docker的手动安装 xff08 CentOS7 xff09 1 1 卸载历史版本的Docker 1 2 安装依赖包 1 3 更新本地镜像源 也可以叫做 xff1a 设置源仓库 1
  • 匿名飞控笔记(一)

    四轴飞行器的控制原理 四轴飞行器的结构 xff08 待补 xff09 四轴飞行器的运动控制方法 xff08 待补 xff09 四轴飞行器各部分工作原理 飞行姿态与升力关系 1 绕y轴旋转 角度 2 绕x轴旋转 角度 3 绕z轴旋转 角度 飞
  • 匿名飞控笔记(三)

    姿态解算 四元数表示方向余弦矩阵误差的求解PI误差补偿四元数的求解欧拉角的求解 以下参考 xff1a https blog csdn net zhiyu buliang article details 88936541 1 明确一个概念 x
  • Eigen初始化及基本操作大全

    Eigen常用操作 Eigen3安装 ubuntu如何安装Eigen include directories span class token punctuation span span class token operator span
  • 关于c++多文件编程中遇到class has no member named

    问题描述是关于自己已经在类中定义了该函数或者变量但是却无法识别 这是为什么 xff1f 也许你在使用c 43 43 的时候会出现问题 has no member named 意思就是类没有成员变量XXA 实际上类是具有成员变量XX的 问题的
  • VSCode C++ :ERROR: Unable to start debugging. GDB exited unexpectedly.

    问题描述 在VSCode中运行C 43 43 程序时 xff0c 出现了报错ERROR Unable to start debugging GDB exited unexpectedly 或者Unexpected GDB output fr
  • VMware 克隆centos7虚拟机

    由于要创建多台Linux虚拟机来搭建K8s集群 xff0c 一台一台的安装非常的费时 所以记录如何通过克隆的方式来快速克隆多台虚拟机 一 首先克隆的虚拟机状态必须为关机 二 克隆完成之后 xff0c 选中新克隆的虚拟机右击 xff0c 点击
  • MySql 修改 root 密码

    整理了以下四种在MySQL中修改root密码的方法 可能对大家有所帮助 方法1 xff1a 用SET PASSWORD命令 mysql u root mysql gt SET PASSWORD FOR 39 root 39 64 39 lo
  • Ubuntu16.04:安装python3.6及遗留问题解决

    文章目录 Ubuntu16 04 xff1a 安装python3 6引发问题 xff1a 打开terminal没反应安装pip和python3 6 devpip install加速 Ubuntu16 04 xff1a 安装python3 6
  • 【论文阅读】【综述】3D Object Detection 3D目标检测综述

    目录 写在开头3D Object Detection相关博客 xff1a Sliding windowVote3Deep Fast Object Detection in 3D Point Clouds Using Efficien xff
  • OpenStack历史知识

    翻译自 xff1a https docs openstack org project team guide introduction html OpenStack历史 起源 OpenStack项目在2010年前几个月创建 Rackspace
  • 元学习——meta-learning

    前言 称不上多熟悉这个领域 xff0c 毕竟还没有系统调研 最近读了两篇论文 xff0c 权当总结 学习优化器 简介 在这种方法中 xff0c 一个网络 xff08 元学习器meta learner xff09 学习更新另一个网络 xff0
  • PHP下载docx文档打开时显示 word2007无法打开Office OpenXML 文件

    症状 我自己的PHP xff0c 把word文档存入数据库后 xff0c 再从数据库下载成docx文件 xff1b 当打开该文件时 Word2007 xff0c 出现错误提示 xff1a 无法打开Office OpenXML 文件 文件名