我需要通过在网址路径中提供其名称来访问图片,我尝试使用此代码但图片未显示
/**
*
* @Route("images/{imgname}",name="workflow_image")
*/
public function WorkflowImageAction(Request $request,$imgname){
$filepath = $this->get('kernel')->getRootDir().'/../web/images/workflow/'.$imgname;
$file = readfile($filepath);
$headers = array(
'Content-Type' => 'image/png',
'Content-Disposition' => 'inline; filename="'.$file.'"');
return $file;
}
答案 0 :(得分:4)
如果您要提供静态文件,则可以使用BinaryFileResponse:
use Symfony\Component\HttpFoundation\BinaryFileResponse;
$file = 'path/to/file.txt';
$response = new BinaryFileResponse($file);
return $response;
有关Serving Files in Symfony2 in the doc的更多信息。
希望这个帮助
答案 1 :(得分:1)
你确定,通过php分享图片是一个好主意吗?
您可以在服务器(nginx或apache)中为文件夹web / image / workflow编写一些规则。
通过php分享他们是个坏主意。 Nginx / apache可以非常快速地完成,而不是使用RAM(php在RAM中读取完整图像)。 此外,nginx / apache可以缓存此图像。