我的网站是使用AJAX调用服务器端PHP的HTML/Javascript。我想让用户点击一个图标并从MySQL数据创建一个报告,然后将其保存在客户端桌面而不是进行页面重新加载。在用户桌面上动态创建doc/docx文档
创建文档的选项,我可以收集它,看起来如下所示。 (我收集它需要完成服务器端,而不是使用Javascript。)我不知道在每种情况下文件的结尾。请随时纠正我的误解:)
方法1 - 这只出现创建一个.doc文件。我不确定文件的放置位置。
$fp = fopen("method1.doc", 'w+');
$str = "<B>This is the text for the word file created through php programming</B>";
fwrite($fp, $str);
fclose($fp);
方法2 - 这也似乎创建一个.doc文件。
$word = new COM("word.application") or die ("couldnt create an instance of word");
echo "loaded , word version{$word->version}";
$word->visible = 1;
$word->Documents->Add();
$word->Selection->TypeText("Sample text.");
$word->Documents[1]->SaveAs("method2.doc");
$word->Quit();
$word->Release();
$word = null;
方法3 - 也是一个.doc文件,我想。
header('Content-type: application/vnd.ms-word');
header("Content-Disposition: attachment;Filename=method3.doc");
echo "<html>";
echo "<body>";
echo "<b>My first document</b>";
echo "</body>";
echo "</html>";
方法4 - PHPWord
方法5 - PHPDocx
我测试过1 & 2在我家的开发环境,但我无法找到文件!请问最好的方法是什么?
谢谢:)
顺便说一句,我知道有相关的帖子here,here和here,但没有真正回答了这个问题。
在您的第一次和第二次尝试中,文件被保存在服务器上,而不是发送到客户端。如果你需要客户端来保存文件,你应该输出生成的内容并设置适当的响应头文件,就像你在第三个例子中那样(尽管这不会产生一个“正确”的Word文档)。 – 2012-03-12 07:14:20