【发布时间】:2012-03-12 06:19:46
【问题描述】:
我的网站是带有 AJAX 调用服务器端 PHP 的 HTML/Javascript。我想让用户单击一个图标并从 MySQL 数据创建一个报告,然后将其保存在客户端的桌面上而不重新加载页面。
据我所知,用于创建文档的选项如下所示。 (我认为它需要在服务器端完成,而不是使用 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,但我找不到文件!请问最好的前进方式是什么?
谢谢:)
【问题讨论】:
-
在您的第一次和第二次尝试中,文件被保存在服务器上,而不是发送到客户端。如果您需要客户端保存文件,您应该输出生成的内容并设置正确的响应标头,就像在您的第三个示例中一样(尽管这不会完全生成“正确的”Word 文档)。
标签: php javascript desktop docx doc