从symfony

时间:2016-04-18 16:18:44

标签: symfony

我需要通过在网址路径中提供其名称来访问图片,我尝试使用此代码但图片未显示

  /**
 *
 * @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;
}

2 个答案:

答案 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可以缓存此图像。