图像不会显示在生产服务器中(蓝色问号)

时间:2014-06-19 21:24:30

标签: php symfony silex

我有一大堆代码,用于拍摄照片并以中小格式调整大小。完成此操作后,它会以所需格式返回照片。

在我的Mac上的测试服务器中,它就像一个魅力,但在我的生产服务器(共享主机)上它没有按预期工作,它显示我蓝色问号。如果我直接去绝对地图和网址,它会显示我的照片。但是使用控制器路线它会显示问号。我认为原因可能是我在安装的服务器上没有想象或想象..如果这就是它不会调整照片大小的原因呢? (但确实如此)

如果有人可以帮助我在这里查看我的代码以查看错误/错误:)我真的很高兴我是对silex / symfony的新手,所以不要对我太苛刻!

这段代码是

    $app->get('/img/{name}/{size}', function($name, $size, Request $request) use ($app) {
    $prefix = $app['upload_folder'].'/';
    $full_name = $prefix . $name;

    $thumb_name = '';
    $thumb_width = 320;
    $thumb_height = 240;

    if ( !file_exists( $full_name ) )
    {
        throw new \Exception( 'File not found' );
    }

    switch ( $size )
    {
        default:
        case 'small':
            $thumb_name = $prefix . 'small_' . $name;
            $thumb_width = 320;
            $thumb_height = 240;
            break;

        case 'medium':
            $thumb_name = $prefix . 'medium_' . $name;
            $thumb_width = 1024;
            $thumb_height = 768;
            break;
    }

    $out = null;

    if ( 'original' == $size )
    {
        $out = new BinaryFileResponse($full_name);
    }
    else
    {
        if ( !file_exists( $thumb_name ) )
        {
            $app['imagine']->open($full_name)
                ->thumbnail(
                    new Imagine\Image\Box($thumb_width,$thumb_height),
                    Imagine\Image\ImageInterface::THUMBNAIL_INSET)
                ->save($thumb_name);
        }

        $out = new \Symfony\Component\HttpFoundation\BinaryFileResponse($thumb_name);
    }

    return $out;
})
->value('size', 'small');

0 个答案:

没有答案