Я написал следующий скрипт, чтобы конечный пользователь мог создать текстовый документ из текста, введенного в текстовую область:
$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);
?>
Кто-нибудь видит что-то не так с этим? Файл заканчивается на моем сервере, и я не получаю диалоговое окно Сохранить как.
Мне действительно нужна помощь в этом.
Спасибо,