简体   繁体   English

调用未定义的函数 Intervention\\\\Image\\\\Gd\\\\imagecreatefromjpeg() - laravel

[英]Call to undefined function Intervention\\Image\\Gd\\imagecreatefromjpeg() - laravel

I got this error message:我收到此错误消息:

Call to undefined function Intervention\\Image\\Gd\\imagecreatefromjpeg()

this is my php info:这是我的 php 信息:

http://behika.com/ http://behika.com/

I'm using laravel framework (version 5.6) and php 7.1.我正在使用 laravel 框架(5.6 版)和 php 7.1。

I want to upload a image but I got this error.我想上传图片,但出现此错误。

gd
GD Support  enabled
GD Version  bundled (2.1.0 compatible)
GIF Read Support    enabled
GIF Create Support  enabled
PNG Support enabled
libPNG Version  1.6.32
WBMP Support    enabled
XBM Support 

my store function:我的商店功能:

public function store(CompanyRequest $request)
{
    $all = $request->except(['category-company', 'flag', 'null', 'file', 'producer-company','manager','address','description','phone']);
    $flag = array_values($request->input('flag'));
    $jsonFlag = json_encode($flag);
    $all['flag'] = $jsonFlag;

    if($request->input('manager')){
        $all['manager']=$request->input('manager');
    }
    if($request->input('address')){
        $all['address']=$request->input('address');
    }
    if($request->input('description')){
        $all['description']=$request->input('description');
    }
    if($request->input('phone')){
        $all['phone']=$request->input('phone');
    }
    $file = $request->file('file');
    $name = $file->getClientOriginalName();
    $dir = '/img/company/';
    $path = $dir . time() . $name;
    $thumbnail = $dir . 'tn-' . time() . $name;
    $all['path'] = $path;
    $all['thumbnail'] = $thumbnail;


    $company = Company::create($all);

    $file->move('img/company', time() . $name);

    $img = Image::make('img/company/' . time() . $name);
    $img->resize(100, 100);
    $img->save('img/company/tn-' . time() . $name);


    $company->categories()->sync($request->input('category-company'));
    $company->producers()->sync($request->input('producer-company'));

    return Response::json($company);
}

I had the same problem.我有同样的问题。 It took me some hours of tracing to get here, because the Image Intervention code uses :我花了几个小时的跟踪才到这里,因为图像干预代码使用

$core = @imagecreatefromjpeg($path);

So errors are suppressed.所以错误被抑制了。 Apache was throwing 500 responses but no messages about why, no logs, nothing. Apache 抛出了 500 个响应,但没有关于原因的消息,没有日志,什么也没有。 Very frustrating!非常令人沮丧!

The clue is in the GD support output you included above, which does not list JPG.线索在上面包含的 GD 支持输出中,它没有列出 JPG。 Mine was is similar - JPEG is listed but not shown as enabled:我的是类似的 - JPEG 已列出但未显示为已启用:

// I'm using CLI here, use <?php print_r(gd_info()); ?> in an http php page
// to check your web server, CLI PHP config is different to web server config
php -r 'print_r(gd_info());'
Array
(
    [GD Version] => bundled (2.1.0 compatible)
    [FreeType Support] => 
    [T1Lib Support] => 
    [GIF Read Support] => 1
    [GIF Create Support] => 1
    [JPEG Support] =>         // <------ blank
    [PNG Support] => 1
    [WBMP Support] => 1
    [XPM Support] => 
    [XBM Support] => 1
    [WebP Support] => 
    [JIS-mapped Japanese Font Support] => 
)

I am running PHP/Apache in a Docker container, and the solution for me was to add JPG support in my Dockerfile, as described in the 'PHP Core Extensions' section of the docs :我在 Docker 容器中运行 PHP/Apache,我的解决方案是在我的 Dockerfile 中添加 JPG 支持,如文档的“PHP 核心扩展”部分所述

RUN apt-get update && apt-get install -y \
    libfreetype6-dev \
    libjpeg62-turbo-dev \
    libpng-dev \
    && docker-php-ext-configure gd --with-freetype --with-jpeg \
    && docker-php-ext-install -j$(nproc) gd

Now GD shows JPG support:现在GD显示JPG支持:

php -r 'print_r(gd_info());' 
Array
(
    [GD Version] => bundled (2.1.0 compatible)
    [FreeType Support] => 1
    [FreeType Linkage] => with freetype
    [T1Lib Support] => 
    [GIF Read Support] => 1
    [GIF Create Support] => 1
    [JPEG Support] => 1         // <------ hurray!
    [PNG Support] => 1
    [WBMP Support] => 1
    [XPM Support] => 
    [XBM Support] => 1
    [WebP Support] => 
    [JIS-mapped Japanese Font Support] => 
)

And Image Intervention finally works!图像干预终于奏效了!

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM