在PHP中创建临时.htm文件并将其发送给用户?

时间:2011-11-24 09:49:59

标签: php symfony

是否有一种简单的方法可以在服务器上创建一个空的temp .htm文件并将其作为下载发送给用户?我不需要用fopen()真正创建文件,只需暂时创建它并将其发送给用户。

我需要进行网站身份验证。我发现PHP中有tmpfile()函数,但它对我来说还不是很有用。我正在研究一个Symfony项目,也许还有一个我不知道的标题函数。

我所需要的只是:

$token = '12345';
$filename = $token . '.htm';
createatmpfile($filename);
header(send .htm file as download to the user);

不确定它是如何工作的,但也许我上面的伪代码解释了我在寻找什么......

编辑:

这就是它对Symfony2的作用(感谢Grad):

use Symfony\Component\HttpFoundation\Response;

控制器方法:

public function generateAction() {
    $response = new Response();
    $response->headers->set('Content-Disposition', 'attachment; filename="'.$token.'.htm"'); 
    return $response;
}

1 个答案:

答案 0 :(得分:2)

在普通PHP中,您可以使用以下行来强制用户下载响应

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

在Symfony中,您可以使用:

$this->getResponse()->setHttpHeader('Content-Disposition', 'attachment; filename="filename.htm"');

使用此标头设置,您可以只执行控制器(并让视图填写响应),或将$contents = file_get_contents($path)return $this->renderText($contents)一起使用。

但是取决于你想要实现的目标:你不必创建一个临时文件来强制下载它。