我正在尝试在Symfony2中创建文件下载路由。我的代码
if(!file_exists($w->getOrgUrlFullPath())) {
return new Response('File not exists');
}
$response = new BinaryFileResponse($w->getOrgUrlFullPath());
//These doesn't work
BinaryFileResponse::trustXSendfileTypeHeader();
$response->headers->set('Content-Type', 'application/zip');
$response->setContentDisposition(
ResponseHeaderBag::DISPOSITION_ATTACHMENT,
'file.zip'
);
return $response;
文件位于非公共目录(上层),仅供此控制器使用,但当我检查文件存在时,一切正常,当我尝试下载文件时,DISPOSITION_INLINE
代码输出文件内容。
但是当我尝试将文件下载为DISPOSITION_ATTACHMENT
时,浏览器会返回“无法找到文件” - 它来自浏览器,而不是来自Symfony。
任何人都可以帮助我吗?
编辑:我忘了提到文件大小是~300 mbEDIT2:好的,我发现问题是文件的大小,对于较小的文件,它运行良好。但对于较大的,它返回空内容。它没有在飞行中被嘲笑?