从PHP变量下载/执行数据

时间:2014-07-02 17:24:13

标签: php

我正在尝试在客户端下载PHP缓冲区输出。我对将输出内容写入服务器上的文件然后允许下载不感兴趣。我通过在浏览器上打印来检查我的变量输出。由于缓冲区应该作为文件在客户端下载,我应该在哪里指定文件名?

<?php
  $file=$_POST['file'];
  header('Content-Description: File Transfer');
  header('Content-Type: application/x-java-jnlp-file');  
  ob_clean();
  flush();
  readfile($file);
 ?>

2 个答案:

答案 0 :(得分:1)

只需使用此方法

<?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

答案 1 :(得分:1)

您需要“Content-Disposition”标题:

header( 'Content-Disposition: attachment; filename="downloaded.pdf"' );

完整示例:http://www.php.net/manual/en/function.header.php#example-4581