Вот код, который извлекает файл (скажем .doc) с сервера, сохраняет его во временной папке и затем использует api (скажем, google viewer) для его отображения, а затем удаляет его.Как восстановить -> Просмотр -> Удалить файл в PHP?
<?php
$body = "....."; //data from imap server
$name = "abc.doc";
$file = fopen("temp/" . $name,'w');
fwrite($file,$body);
fclose($file);
$url = rawurlencode("http://www.xxx.com/temp/".$name);
// I do not have a direct url to the file on the imap server, thus have to store it in a temporary folder
echo "<iframe src=\"http://docs.google.com/viewer?url={$url}&embedded=true\" width=\"100%\" height=\"100%\" style=\"border: none;\"></iframe>";
unlink("temp/".$name);
?>
Теперь вопрос заключается в том, что поскольку PHP скрипт выполняет сам первый, а затем повторить это буфер, зритель Google не может найти файл, так как его уже удален. Использование flush() тоже не помогает.
Одна работа заключается в том, чтобы удалить команду «unlink» и создать cron-задание для удаления всех файлов в папке temp (скажем, через каждые 2 минуты). Есть ли лучший способ сделать это?
Я пробовал это, но не работал. Я изменил ссылку, где viewthis.php: $ name = $ _GET ['name']; $ data = file_get_contents ('temp /'.$ name); header ('Content-Type: application/msword'); echo $ data; –
Проблема заключается в удалении файла. Если я удалю его в том же скрипте, который повторяет просмотрщик google, он никогда не будет работать. Я прав?? –
Он должен передать его зрителю, а затем удалить ... пример в http://uk.php.net/readfile покажет вам, как ... если вы сделаете это, он отправит контент в браузер, а на укажите, что вы отсоединяете его. – Brian