尝试使用Php提供.docx文件时遇到问题.上传文件时,我检测文件mime类型,并使用基于mime类型的正确扩展名的文件上传文件;例如下面:

application/msword - doc

application/vnd.openxmlformats-officedocument.wordprocessingml.document - docx

当试图提供文件供下载时,我反过来检测扩展和基于mime类型的服务,例如

public static function fileMimeType($extention) {

if(!is_null($extention)) {

switch($extention) {

case 'txt':

return 'text/plain';

break;

case 'odt':

return 'application/vnd.oasis.opendocument.text';

break;

case 'doc':

return 'application/msword';

break;

case 'docx':

return 'application/vnd.openxmlformats-officedocument.wordprocessingml.document';

break;

case 'jpg':

return 'image/jpeg';

break;

case 'png':

return 'image/png';

break;

case 'pdf':

return 'application/pdf';

break;

default:

break;

}

}

}

所有文件似乎都正确下载并打开正常,但在尝试打开docx文件时,Word(在多个文件上)会引发错误,指出文件已损坏.

任何想法都会很棒,谢谢.

编辑#1

try {

$file = new Booking_Document((int)$get_data['bookingDocument']);

header('Content-Type: ' . Booking_Document::fileMimeType($file->getDocumentType()));

header('Content-Disposition: attachment; filename=' . $file);

header('Expires: 0');

header('Cache-Control: must-revalidate, post-check=0, pre-check=0');

header('Pragma: public');

echo readfile(Zend_Registry::get(static::$_uploadDir).$this->_id);

} catch (Exception $e) {

View_Helpers_FlashMessages::addMessage(array('message' => $e->getMessage(), 'type' => 'error'));

}

exit;

固定

在调用readfile()之前,我添加了ob_clean()和flush(),这似乎解决了问题.

php 打开docx文件,通过Php提供.docx文件相关推荐

  1. 合并多个ts文件,处理加密的ts文件

    对于可直接打开的ts文件 100个以下ts文件可使用copy命令合并 copy /b *.ts output.ts /b 表示以二进制的形式合并 或者使用ffmpeg.exe 合并 需先下载ffmpe ...

  2. Word文件无法正常打开(更新了Office365之后 .docx文件全部变成了 Office Open XML 格式)

    本人在安装了新2021版的Office 365全家桶之后 出现Word文件无法正常打开(更新了Office365之后 .docx文件全部变成了 Office Open XML 格式)的问题.首先是自己 ...

  3. c语言打开关闭文件的顺序,C语言1-文件概述、文件的打开与关闭、顺序读写数据文件(1).docx...

    C语言程序设计教案 章节名称 文件概述.文件的打开与关闭.顺序读写数据文件(1) 授课类型 □理论 □实验 ?理实一体 □实训 □实习 班级 地点 周次 星期 节次 授课进度 ?符合 □超前 □滞后 ...

  4. python读取docx文件_Python应用 | 读写docx文件 (值得收藏的技能)

    字处理软件是平时办公必备的同时也是最常用的软件之一,而字处理软件用的最多最频繁的就是微软的word,其扩展名为docx.在日常工作中,可能需要对很多的docx文件进行批处理,例如教师在批阅学生提交的电 ...

  5. python docx 替换文字_在.docx文件-Python中查找和替换文本

    我一直在寻找一种方法来查找和替换docx文件中的文本,但运气不好.我试过docx模块,但没能成功.最后,我使用zipfile模块并替换docx存档中的document.xml文件,得出了下面描述的方法 ...

  6. React文件预览,React实现在线预览docx,xslx,pdf格式文件

    一.前言 由于项目需要实现文件的预览功能,通过查询百度找到了一个组件,就是react-file-viewer,其官方API中描述可支持文件格式有以下格式: 图片:png,jpeg,gif,bmp,包括 ...

  7. docx格式文件转成doc格式文件时保持公式可编辑状态的方法

    0 提出问题 现在很多论文投稿甚至是毕业论文都要求doc格式的文档(Word2003以前的版本文档),如果大家像我一样习惯使用WPS或者更高级版本的Word,并且在编辑公式过程中未使用MathType ...

  8. linux 下生成docx,linux下创建、删除文件和文件夹命令.docx

    linux下创建.删除文件和文件夹命令.docx 还剩 6页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,喜欢就下载吧,价低环保! 内容要点: 学习 Linux 二(创建.删除文件和文件夹 ...

  9. c语言程序设计第四版乌云高娃,C语言程序设计教学课件作者第3版乌云高娃学习手册C语言程序设计教学课件作者第3版乌云高娃学习手册学习手册第10章文件及其应用课件.docx...

    C语言程序设计教学课件作者第3版乌云高娃学习手册C语言程序设计教学课件作者第3版乌云高娃学习手册学习手册第10章文件及其应用课件.docx 学习手册(1):文本文件的操作学习内容文本文件的操作学习目标 ...

最新文章

  1. swf php文本,SWFFont - PHP 5 中文文档
  2. Win7下Tomcat7和Apache2.2集成
  3. rtx2060什么水平_不出预料+不负众望,NVIDIA RTX2060显卡获得2019我最喜欢称号
  4. 【优化调度】基于matlab人工鱼群算法求解梯级水库调度优化问题【含Matlab源码 415期】
  5. amd显卡测试帧数显示软件,NVIDIA发布帧数显示及显卡基准测试应用FrameView
  6. SmartAdmin(SmartAdmin_v1.5.2)
  7. cad查看_微信接收图纸dwg怎么打开?如何手机查看CAD图纸,三步免费教你
  8. iphone禁止自动连接wifi操作方法「苹果教程」
  9. IDEA和Eclipse的debug怎么实现?出于好奇心,我越挖越深!
  10. 【手写源码-设计模式11】-享元模式-基于打麻将场景
  11. 了解资本与公司年报、财报
  12. pumping lemma
  13. Android音乐播放器的比较。
  14. SpringCloud_Eureka:java.lang.NoClassDefFoundError: org/springframework/boot/actuate/health/HealthAgg
  15. 语音合成工具Coqui TTS安装及体验
  16. ubuntu换阿里源
  17. 麦昆mciro:bit开发板机器人小车——支持makecode图形化编程,支持基于Mind+的图形化编程及python编程
  18. matlab显示sig,Matlab中LSSVM参数gam和sig2寻优范围如何确定以及寻优具体程序如何实现的问题...
  19. Windows 10 开机进入桌面没有任何图标,闪屏系统自动重启explorer.exe,调不出任务管理器
  20. 关于AutoCAD启动速度慢的分析

热门文章

  1. SSO 单点登录(java)
  2. 身份证安全——让挂失的身份证失效的一种方法,我的建议
  3. 朱铎先:忽视这一点,工业几点零都是零!
  4. 怎样才能考上985计算机OR软工硕士?
  5. ice storm暴风雪加盟_在暴风雪里玩命逃生!《Storm VR》上架Steam
  6. python中实例是什么意思_python中的单例模式是什么意思
  7. Android WIFI连接总结
  8. 小美的代金券要过期啦(美团2021校招笔试+模拟栈)
  9. linux 永久绑定ip命令,Linux Ubuntu临时设置和永久设置绑定新IP地址的方法
  10. 现在的无限火力在哪个服务器,LOL2018无限火力模式什么时候开启?国服什么时候出?...