php 打开docx文件,通过Php提供.docx文件
尝试使用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文件相关推荐
- 合并多个ts文件,处理加密的ts文件
对于可直接打开的ts文件 100个以下ts文件可使用copy命令合并 copy /b *.ts output.ts /b 表示以二进制的形式合并 或者使用ffmpeg.exe 合并 需先下载ffmpe ...
- Word文件无法正常打开(更新了Office365之后 .docx文件全部变成了 Office Open XML 格式)
本人在安装了新2021版的Office 365全家桶之后 出现Word文件无法正常打开(更新了Office365之后 .docx文件全部变成了 Office Open XML 格式)的问题.首先是自己 ...
- c语言打开关闭文件的顺序,C语言1-文件概述、文件的打开与关闭、顺序读写数据文件(1).docx...
C语言程序设计教案 章节名称 文件概述.文件的打开与关闭.顺序读写数据文件(1) 授课类型 □理论 □实验 ?理实一体 □实训 □实习 班级 地点 周次 星期 节次 授课进度 ?符合 □超前 □滞后 ...
- python读取docx文件_Python应用 | 读写docx文件 (值得收藏的技能)
字处理软件是平时办公必备的同时也是最常用的软件之一,而字处理软件用的最多最频繁的就是微软的word,其扩展名为docx.在日常工作中,可能需要对很多的docx文件进行批处理,例如教师在批阅学生提交的电 ...
- python docx 替换文字_在.docx文件-Python中查找和替换文本
我一直在寻找一种方法来查找和替换docx文件中的文本,但运气不好.我试过docx模块,但没能成功.最后,我使用zipfile模块并替换docx存档中的document.xml文件,得出了下面描述的方法 ...
- React文件预览,React实现在线预览docx,xslx,pdf格式文件
一.前言 由于项目需要实现文件的预览功能,通过查询百度找到了一个组件,就是react-file-viewer,其官方API中描述可支持文件格式有以下格式: 图片:png,jpeg,gif,bmp,包括 ...
- docx格式文件转成doc格式文件时保持公式可编辑状态的方法
0 提出问题 现在很多论文投稿甚至是毕业论文都要求doc格式的文档(Word2003以前的版本文档),如果大家像我一样习惯使用WPS或者更高级版本的Word,并且在编辑公式过程中未使用MathType ...
- linux 下生成docx,linux下创建、删除文件和文件夹命令.docx
linux下创建.删除文件和文件夹命令.docx 还剩 6页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,喜欢就下载吧,价低环保! 内容要点: 学习 Linux 二(创建.删除文件和文件夹 ...
- c语言程序设计第四版乌云高娃,C语言程序设计教学课件作者第3版乌云高娃学习手册C语言程序设计教学课件作者第3版乌云高娃学习手册学习手册第10章文件及其应用课件.docx...
C语言程序设计教学课件作者第3版乌云高娃学习手册C语言程序设计教学课件作者第3版乌云高娃学习手册学习手册第10章文件及其应用课件.docx 学习手册(1):文本文件的操作学习内容文本文件的操作学习目标 ...
最新文章
- swf php文本,SWFFont - PHP 5 中文文档
- Win7下Tomcat7和Apache2.2集成
- rtx2060什么水平_不出预料+不负众望,NVIDIA RTX2060显卡获得2019我最喜欢称号
- 【优化调度】基于matlab人工鱼群算法求解梯级水库调度优化问题【含Matlab源码 415期】
- amd显卡测试帧数显示软件,NVIDIA发布帧数显示及显卡基准测试应用FrameView
- SmartAdmin(SmartAdmin_v1.5.2)
- cad查看_微信接收图纸dwg怎么打开?如何手机查看CAD图纸,三步免费教你
- iphone禁止自动连接wifi操作方法「苹果教程」
- IDEA和Eclipse的debug怎么实现?出于好奇心,我越挖越深!
- 【手写源码-设计模式11】-享元模式-基于打麻将场景
- 了解资本与公司年报、财报
- pumping lemma
- Android音乐播放器的比较。
- SpringCloud_Eureka:java.lang.NoClassDefFoundError: org/springframework/boot/actuate/health/HealthAgg
- 语音合成工具Coqui TTS安装及体验
- ubuntu换阿里源
- 麦昆mciro:bit开发板机器人小车——支持makecode图形化编程,支持基于Mind+的图形化编程及python编程
- matlab显示sig,Matlab中LSSVM参数gam和sig2寻优范围如何确定以及寻优具体程序如何实现的问题...
- Windows 10 开机进入桌面没有任何图标,闪屏系统自动重启explorer.exe,调不出任务管理器
- 关于AutoCAD启动速度慢的分析
热门文章
- SSO 单点登录(java)
- 身份证安全——让挂失的身份证失效的一种方法,我的建议
- 朱铎先:忽视这一点,工业几点零都是零!
- 怎样才能考上985计算机OR软工硕士?
- ice storm暴风雪加盟_在暴风雪里玩命逃生!《Storm VR》上架Steam
- python中实例是什么意思_python中的单例模式是什么意思
- Android WIFI连接总结
- 小美的代金券要过期啦(美团2021校招笔试+模拟栈)
- linux 永久绑定ip命令,Linux Ubuntu临时设置和永久设置绑定新IP地址的方法
- 现在的无限火力在哪个服务器,LOL2018无限火力模式什么时候开启?国服什么时候出?...