我试图通过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);
}
}
?>
输出:
如果我创建一个专用的PHP文件,问题就不存在了,问题只出现在我用Kohana框架3.2.2尝试过的时候。
仅供参考:我甚至删除了index.php,database.php和bootstrap.php中的所有间距
我需要的是没有空顶线和第二行缩进,任何人都可以帮我解决这个问题吗?
答案 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');