在浏览器中显示图像之前调整图像大小

时间:2015-09-17 11:26:03

标签: php image laravel resize

我正在创建一个API,其中我有一个名为OnlineAds()的模型,它包含titlefull_discriptionshort_discriptionimage这些列,我还创建了一个输入表单来填写这些字段并上传图像,在image字段中我添加图像的名称并将图像存储在此路径中:storage/uploads。我能够检索图像并显示它,但我仍然没有弄清楚如何在显示之前调整它的大小(假设我希望它是300 x 300),任何人都可以告诉我如何?

注意:我尝试使用Stapler和Imagine,但他们似乎给出了多个错误并且失败了!

这是我的控制者:

public function show()
{
 $img = OnlineAds::find(50)->image;

    $path = storage_path('uploads') . '/' . $img;

    if (File::exists($path)) {

        $filetype = File::type($path);

        $response = Response::make(File::get($path), 200);

        $response->header('Content-Type', $filetype);
        return $response;

    }

}

1 个答案:

答案 0 :(得分:3)

您可以考虑使用Intervention来处理图像处理以及处理响应。它可以像这样简单:

public function show()
{
    $img = OnlineAds::find(50)->image;
    $path = storage_path('uploads') . '/' . $img;

    if (File::exists($path)) {
        $img = Image::make($path);
        $img->resize(300, 300);

        return $img->response();
    }
}

关于如何安装Intervention库并将其与Laravel集成有detailed instructions,并且它不需要花费几分钟的时间来启动和运行。