前言:众所周知,兰空图床是一款不错的图床,也是我自己的博客一直在用的图床,可惜兰空图床自身并不支持avif格式的图片上传,所以本篇教程就来教大家我们自己手动添加avif格式的支持,废话不多说,我们上教程。
修改config/convention.php的109行,添加avif
GroupConfigKey::AcceptedFileSuffixes => ['jpeg', 'jpg', 'png', 'gif', 'tif', 'bmp', 'ico', 'psd', 'webp', 'avif'],
修改app/Http/Requests/Admin/GroupRequest.php的41行,添加avif
'configs.accepted_file_suffixes' => 'required|array|in:jpeg,jpg,png,gif,tif,bmp,ico,psd,webp,avif',
修改app/Services/ImageService.php 159行左右,可以搜索图片处理,修改判断跳过avif
if (! in_array($extension, ['ico', 'gif', 'avif'])) {
253行左右,可以搜索图片检测,修改判断跳过avif
// 图片检测,跳过 tif、ico 以及 psd 格式
if ($configs->get(GroupConfigKey::IsEnableScan) && ! in_array($extension, ['psd', 'ico', 'tif', 'avif'])) {
修改app/Http/Controllers/Controller.php 168行左右,可以搜索水印功能,修改判断跳过avif
// 是否启用了水印功能,跳过gif和ico图片
if (
$image->group?->configs->get(GroupConfigKey::IsEnableWatermark) &&
$configs->get('mode', Mode::Overlay) == Mode::Dynamic &&
! in_array($image->extension, ['ico', 'gif', 'avif'])
189行左右,可以搜索图片直接输出,修改判断跳过avif
// ico 图片直接输出,不经过 InterventionImage 处理
if (in_array($image->extension, ['ico', 'avif'])) {
goto out;
}
然后在用户组开启设置就可以上传了。
发表评论