文本文件中的空顶行间距

时间:2016-01-28 17:54:11

标签: php text download kohana fwrite

我试图通过Kohana框架生成并下载文本文件,但它为内容开头的第二行添加了空顶行和制表符缩进。这是我的代码:

<?php
class Controller_Add extends Controller_Siteadmin 
{
    public function __construct(Request $request, Response $response)
    {
        parent::__construct($request, $response);   
    }
    public function action_sample()
    {
        $content ="hello this is sample text file";
        $filename = "yourfile.txt";
        $f = fopen($filename, 'w');
        fwrite($f, $content);
        fclose($f);
        header("Cache-Control: public");
        header("Content-Description: File Transfer");
        header("Content-Length: ". filesize("$filename").";");
        header("Content-Disposition: attachment; filename=$filename");
        header("Content-Type: application/octet-stream; "); 
        header("Content-Transfer-Encoding: binary");
        readfile($filename);
    }
}
?>

输出:

enter image description here

如果我创建一个专用的PHP文件,问题就不存在了,问题只出现在我用Kohana框架3.2.2尝试过的时候。

仅供参考:我甚至删除了index.php,database.php和bootstrap.php中的所有间距

我需要的是没有空顶线和第二行缩进,任何人都可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

出于此目的,Kohana在Response对象中有send_file方法。

此方法可以从$this->response对象的Controller属性中获得,如:

$this->response->send_file();

我的情况是将生成的内容下载为文本文件,您可以在Controller中使用followind代码:

$this->response
    ->body('hello this is sample text file')
    ->send_file(true, 'yourfile.txt');