是否有一种简单的方法可以在服务器上创建一个空的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;
}
答案 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)
一起使用。
但是取决于你想要实现的目标:你不必创建一个临时文件来强制下载它。