#php
#php
Вопрос:
Я пытаюсь загрузить вывод буфера PHP на стороне клиента. Я не заинтересован в записи выходного содержимого в файл на сервере, а затем в разрешении загрузки. Я проверил вывод своей переменной, распечатав ее в браузере. Поскольку буфер должен быть загружен на стороне клиента в виде файла, где я должен указать имя файла?
<?php
$file=$_POST['file'];
header('Content-Description: File Transfer');
header('Content-Type: application/x-java-jnlp-file');
ob_clean();
flush();
readfile($file);
?>
~
Комментарии:
1. RTFM: php.net/readfile вам, вероятно, просто нужно
echo $file
.2. Вам также необходимо знать о
$_FILES
суперглобальном и обработке загрузки файлов с использованием этого метода
Ответ №1:
Вам понадобится заголовок «Content-Disposition»:
header( 'Content-Disposition: attachment; filename="downloaded.pdf"' );
Полный пример:http://www.php.net/manual/en/function .заголовок.php#пример-4581
Ответ №2:
Просто используйте этот метод
<?php
$file = 'monkey.gif';
if (file_exists($file)) {
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($file));
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
ob_clean();
flush();
readfile($file);
exit;
}
?>
Нужна дополнительная помощьhttp://www.php.net/manual/en/function.readfile.php