我有一大堆代码,用于拍摄照片并以中小格式调整大小。完成此操作后,它会以所需格式返回照片。
在我的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');