我收到此错误消息:
Call to undefined function Intervention\\Image\\Gd\\imagecreatefromjpeg()
Run Code Online (Sandbox Code Playgroud)
这是我的 php 信息:
我正在使用 laravel 框架(5.6 版)和 php 7.1。
我想上传图片,但出现此错误。
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
Run Code Online (Sandbox Code Playgroud)
我的商店功能:
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);
}
Run Code Online (Sandbox Code Playgroud)
Don*_*nic 26
我有同样的问题。我花了几个小时的跟踪才到这里,因为图像干预代码使用:
$core = @imagecreatefromjpeg($path);
Run Code Online (Sandbox Code Playgroud)
所以错误被抑制了。Apache 抛出了 500 个响应,但没有关于原因的消息,没有日志,什么也没有。非常令人沮丧!
线索在上面包含的 GD 支持输出中,它没有列出 JPG。我的是类似的 - 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] =>
)
Run Code Online (Sandbox Code Playgroud)
我在 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
Run Code Online (Sandbox Code Playgroud)
现在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] =>
)
Run Code Online (Sandbox Code Playgroud)
图像干预终于奏效了!
| 归档时间: |
|
| 查看次数: |
6269 次 |
| 最近记录: |