Мой сайт HTML/Javascript с AJAX, вызывающим серверный PHP-сервер. Я хочу разрешить пользователю щелкнуть значок и создать отчет из данных 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 в моей домашней Dev среде, но я не могу найти файлы! Каков наилучший путь вперед, пожалуйста?
Спасибо :)
Кстати, я знаю, что есть соответствующие должности here, here и here, но никто на самом деле не отвечает на вопрос.
В первой и второй попытке файл сохраняется на сервере, а не отправляется клиенту.Если вам нужен клиент для сохранения файла, вы должны вывести сгенерированный контент и установить правильные заголовки ответов, как в третьем примере (хотя это не будет точно генерировать «правильный» документ Word). –