我正在使用Symfony 2制作一个"下载"控制器,其唯一目的是发送标题以便我可以强制下载.csv文件,但它无法正常工作.
$response = new Response();
$response->headers->set('Content-Type', "text/csv");
$response->headers->set('Content-Disposition', 'attachment; filename="'.$fileName.'"');
$response->headers->set('Pragma', "no-cache");
$response->headers->set('Expires', "0");
$response->headers->set('Content-Transfer-Encoding', "binary");
$response->headers->set('Content-Length', filesize($fileName));
$response->prepare();
$response->sendHeaders();
$response->setContent(readfile($fileName));
$response->sendContent();
Run Code Online (Sandbox Code Playgroud)
$fileName是一个"info.csv"字符串.这是我在我的控制器内的行为,没有退货声明.当我尝试返回ResponseObject时,文件的内容显示在浏览器中,而不是我想要的结果.
我发现的问题是,在某些页面中我确实得到了我的info.csv file,但在其他一些页面中,我得到的是一条消息:
No webpage was found for the web address: http://mywebpage.com/download
Error 6 (net::ERR_FILE_NOT_FOUND): The file or directory could not be found.
我完全确定该文件存在,所以必须有另一个错误.此外,routing.yml工作正常,因为我从其他页面获取文件也链接到该路径.Apache错误日志没有显示任何相关信息.
有人曾经强迫在Symfony 2上下载.csv文件吗?如果是这样,我做错了什么?