PHP textarea内容下载无法正常工作

时间:2013-07-16 06:51:55

标签: php

下面是我正在使用的php代码,

         <?php
         if(isset($_POST['tarea'])){
                 $filename = $_SESSION['Zone'].'.zone';
                 $data = $_POST['tarea'];
                 header("Cache-Control: public");
                 header("Content-Description: File Transfer");
                 header("Content-Disposition: attachment; filename=$filename");
                 header("Content-Type: application/octet-stream; "); 
                 header("Content-Transfer-Encoding: binary");
                 echo $data;
                 }
        ?>

我只是尝试下载文本区域的内容作为可下载文件,但它也在文件中输出html代码,我试图使用die($ data);而不是echo $ data;但它不起作用。 请帮我解决这个问题。感谢。

2 个答案:

答案 0 :(得分:0)

我创建了两个文件,tarea.php(用于表单)和download.php

tarea.php

<?php
session_start();
$_SESSION['Zone'] = 'test';

?>
<form action="download.php" method="post">
<textarea name="tarea"></textarea>
<input type="submit">     
</form>

的download.php

<?php
session_start();
if(isset($_POST['tarea'])){
    $filename = $_SESSION['Zone'].'.zone';
    $data = $_POST['tarea'];
    header("Cache-Control: public");
    header("Content-Description: File Transfer");
    header("Content-Disposition: attachment; filename=$filename");
    header("Content-Type: application/octet-stream; "); 
    header("Content-Transfer-Encoding: binary");
    echo $data;
    exit;
}
?>

答案 1 :(得分:0)

我希望您可以使用

解决问题
$data = strip_tags($_POST['tarea']);

而不是

$data = $_POST['tarea'];

如果这对您没有帮助,请使用

ob_end_clean();

使用header()函数之前。