Я написал следующий скрипт, чтобы конечный пользователь мог создать текстовый документ из текста, введенного в текстовую область:
$fp = fopen("yourDoc.doc", 'w+');
fwrite($fp, $wordDoc);
fclose($fp);
По сути, создается файл «yourDoc.doc», а текст, записанный в файл, находится в переменной $wordDoc.
В настоящее время этот скрипт создает документ и автоматически сохраняет его по тому же пути, по которому расположены страницы моего сервера. Я хочу использовать приведенный выше сценарий, но вывести диалоговое окно «Сохранить как», чтобы конечный пользователь мог локально сохранить документ на своем компьютере.
После нескольких часов исследований я понял, что могу использовать заголовки, однако не могу заставить их работать. Кажется, я не могу найти пример, который включает в себя заголовки, fopen и fwrite. Например, я безуспешно пробовал множество вариантов следующего скрипта:
$fp = fopen("yourDoc.doc", 'w+');
fwrite($fp, $wordDoc);
fclose($fp);
header('Content-type: application/ms-word');
header('Content-disposition: attachment; filename="yourDoc.doc"');
readfile("yourDoc.doc");
Я также пробовал следующее (это вся моя php-страница):
<?php
//Connect to Db//
$con = mysql_connect("localhost", "root", "admin");
//Verify connection//
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
//Select Db//
mysql_select_db("schooldb", $con);
$wordDoc = $_GET['word'];//text for word doc//
header('Content-type: application/ms-word');
header('Content-disposition: attachement; filename="yourDoc.doc"');
$fp = fopen("yourDocument.doc", 'w+');//word doc created//
fwrite($fp, $wordDoc);//text written to word doc//
fpassthru($fp);
fclose($fp);
mysql_close($con);
?>
Кто-нибудь видит что-то не так с этим? Файл попадает на мой сервер, и я не получаю диалоговое окно «Сохранить как».
Мне действительно нужна помощь в этом.
Спасибо,