Php 如何修复image::make上不支持图像类型的错误

Php 如何修复image::make上不支持图像类型的错误,php,laravel,laravel-nova,laravel-6,Php,Laravel,Laravel Nova,Laravel 6,我正在尝试使用Laravel Nova管理面板和api创建图像/用户化身。我需要为每次下载生成3张图片-头像,缩略图和预览 公共功能字段(请求$Request) { 返回[ //其他一些领域 阿凡达:制作(uuuuuuuuuuuuuuuuuuuuuuuuuu('Profile Photo'),'Avatar_uuuuupath') ->路径(“图像/用户/化身”) ->storeAs(功能(请求$请求){ $file=$request->file('avatar_path'); 返回$reque

我正在尝试使用Laravel Nova管理面板和api创建图像/用户化身。我需要为每次下载生成3张图片-头像,缩略图和预览

公共功能字段(请求$Request)
{
返回[
//其他一些领域
阿凡达:制作(uuuuuuuuuuuuuuuuuuuuuuuuuu('Profile Photo'),'Avatar_uuuuupath')
->路径(“图像/用户/化身”)
->storeAs(功能(请求$请求){
$file=$request->file('avatar_path');
返回$request->user()->id.'''.sha1($file->getClientOriginalName())。$file->getClientOriginalExtension();
})
->预览(函数($value,$disk){
返回$this->getCroppedAvatar($value,'prev',636);
})
->缩略图(函数($value,$disk){
返回$this->getCroppedAvatar($value,'thumb',64);
})
->禁用下载(),
在这个领域,我使用以下方法

公共静态函数getCroppedAvatar($value、$type、$size)
{
$path=str_replace('avatars',$type,$value);
如果($value&!存储::存在($value)){
返回null;
}
if($value&&is_文件(存储::路径($path))&&!is_目录(存储::路径($path))){
返回存储::url($path);
}
如果(价值){
图像::make(存储::路径($value))
->加宽($size)->保存(存储::路径($path));
日志::信息('新预览为'.Storage::path($path));
返回存储::url($path);
}
返回null;
}
在本例中,Laravel Nova正在工作,但如果我尝试从API控制器调用getCroppedAvatar,我在Image::make line上有一个错误:

Unsupported image type. GD driver is only able to decode JPG, PNG, GIF or WebP files. {"userId":16,"exception":"[object] (Intervention\\Image\\Exception\\NotReadableException(code: 0): Unsupported image type. GD driver is only able to decode JPG, PNG, GIF or WebP files. at /var/www/tracker/vendor/intervention/image/src/Intervention/Image/Gd/Decoder.php:59)
API控制器上的代码

Storage::put($fileDirectory./'.$fileName,$image);
用户::getCroppedAvatar($fileDirectory.'/'.$fileName,'prev',636);
用户::getCroppedAvatar($fileDirectory.'/.$fileName,'thumb',64);
在这两种情况下,我都使用png和jpg文件。参数值是相同的。 我怎样才能修好它?
谢谢!

最后,我找到了解决方案。据我所知,存储类创建的映像类型不正确,所以我从API控制器更改了这一行

Storage::put($fileDirectory.'/'.$fileName, $image);
为此:

Image::make($file)->save(Storage::path($filePath));