【LSky Pro 改造】扩展上传格式小记录
编辑
132
2025-08-01
最近尝试使用
LSky Pro图床,觉得还不错,不过嘛——为了满足自己的需求,我还是忍不住想捣鼓一番 🤏
这篇文章是我在不开启压缩、审核、水印等功能的前提下,把LSky Pro用于存放 非图片格式(视频、文档等) 文件的一点折腾记录
📝环境说明
通过1Panel 面板部署,镜像是:halcyonazure/lsky-pro-docker:latest
📤拓展想法
默认LSky Pro只支持常见图片格式,比如 JPEG、PNG 等,连 SVG 都不支持!但我希望它还能上传一些小视频、文档啥的(方便管理和调用),于是就开始动手扩展支持格式。

🛠️解决过程
1. 前端新增上传格式
默认情况下,LSky Pro只允许图片上传:

所以需要修改前端配置文件 config/convention.php ,追加需要上传的格式。
原始的配置:
GroupConfigKey::AcceptedFileSuffixes => ['jpeg', 'jpg', 'png', 'gif', 'tif', 'bmp', 'ico', 'psd', 'webp']
追加新格式:
//这里添加了一个svg格式和一些视频格式
GroupConfigKey::AcceptedFileSuffixes => ['mp4','mov','avi','mkv','webm','svg','jpeg', 'jpg', 'png', 'gif', 'tif', 'bmp', 'ico', 'psd', 'webp'],

2. 后端新增匹配格式
前端能勾选新格式还不够,后端也需要处理一下格式校验,否则无法保存角色组配置。

这时候就需要修改这个文件:app/Http/Requests/Admin/GroupRequest.php
原始内容:
'configs.accepted_file_suffixes' => 'required|array|in:jpeg,jpg,png,gif,tif,bmp,ico,psd,webp',
追加前面新增的格式:
'configs.accepted_file_suffixes' => 'required|array|in:mp4,mov,avi,mkv,webm,svg,jpeg,jpg,png,gif,tif,bmp,ico,psd,webp',
这样,后端也认这些格式了,角色组配置可以保存了。
3. 缩略图预览
LSky Pro的网页端上传会尝试生成缩略图来预览文件,但对于视频、psd 这些格式,它显然预览不了,结果就直接报错了 :

所以需要在 resources/views/components/upload.blade.php 里追加排除预览的格式。
原始排除配置:
let excludes = ['psd', 'tif','mp4']; // 排除支持预览的格式
追加排除格式:
//这里只要添加视频格式,svg能生成预览,就不用添加了
let excludes = ['mp4','mov','avi','mkv','webm','psd', 'tif']; // 排除支持预览的格式
这样前端就不会尝试给这些格式生成预览缩略图,也就不会报错了。

🔚小结
- 视频、SVG 等非图片格式现在都可以上传了
- 不会再在后台网页中报错
- 当然,这些格式在后台网页中看不到缩略图预览(正常现象)
- ⚠️ 本文记录的是只开启上传功能的LSky Pro改动方式,如果你开启了其他功能(压缩 / 水印 / 审核等),可能还需要额外处理。
- 0
- 0
-
分享