2016-08-04 79 views
1


以前我想输出一个doc文件很好。
但是当我更改为docx时,它告诉我无法打开docx,因为发现内容有问题/文件已损坏。

如果我拿出'回声',那么没有错误发生,但内容为空。
这里是我的代码:PHP:从html输出一个docx文件

$fileName = $m_year . "-" . $m_month . "-" . $m_con_id . " - Monthly Report.docx"; 
header("Content-type: application/vnd.openxmlformats-officedocument.wordprocessingml.document"); 
header("content-disposition: attachment;filename=\"". $fileName ."\""); 
header('Cache-Control: public'); 
$content = ets_docMonthlyReportTemplate(); 
echo $content; 

然后我改变vsword,但给我的非法名称字符。地点:部分:/word/document.xml

require_once '/vsword/VsWord.php'; 
VsWord::autoLoad(); 
$doc = new VsWord(); 
$parser = new HtmlParser($doc); 
$content = ets_docMonthlyReportTemplate(); 
$html= $content; 
$parser->parse($html); 
echo '<pre>'.($doc->getDocument()->getBody()->look()).'</pre>'; 
$doc->saveAs($fileName); 

我可以用头MIME类型的输出只是或必须应用库?
谢谢。

+2

更改MIME类型头只是改变MIME类型头,它不会改变您发送给浏览器的任何内容,只是建议浏览器如何解释该内容......它不会自动将html标记更改为本机格式的docx文件....要实际更改该内容,您需要一个图书馆(或编写自己的图书馆) –

+0

嗨,谢谢你的回复。这对我来说很清楚。 –

回答