我的網站是使用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