在Discuz中,默认情况下,上传的图片格式是有限制的,通常只支持常见的图片格式如JPG、PNG、GIF等。SVG格式的图片通常不被默认支持,因此会出现“上传失败!非图片类型文件”的提示。
要解决这个问题,你需要修改Discuz的代码以允许上传SVG格式的图片。具体步骤如下:
### 1. 修改上传文件类型限制
你需要修改Discuz的上传文件类型限制,允许上传SVG格式的图片。
找到并打开以下文件:
- source/class/class_upload.php
复制代码
在该文件中,找到以下代码:
- $allowedext = array('jpg', 'jpeg', 'gif', 'png', 'bmp', 'webp');
复制代码
将其修改为:
- $allowedext = array('jpg', 'jpeg', 'gif', 'png', 'bmp', 'webp', 'svg');
复制代码
### 2. 修改MIME类型检测
Discuz还会检测上传文件的MIME类型,确保上传的文件是图片类型。SVG文件的MIME类型是`image/svg+xml`,因此你需要在MIME类型检测中添加对SVG的支持。
找到并打开以下文件:
- source/class/class_upload.php
复制代码
在该文件中,找到以下代码:
- $imgext = array('jpg', 'jpeg', 'gif', 'png', 'bmp', 'webp');
复制代码
将其修改为:
- $imgext = array('jpg', 'jpeg', 'gif', 'png', 'bmp', 'webp', 'svg');
复制代码
然后找到以下代码:
- $imgmime = array('image/jpeg', 'image/gif', 'image/png', 'image/bmp', 'image/webp');
复制代码
将其修改为:
- $imgmime = array('image/jpeg', 'image/gif', 'image/png', 'image/bmp', 'image/webp', 'image/svg+xml');
复制代码
### 3. 清除缓存
修改完成后,你需要清除Discuz的缓存,使修改生效。你可以通过后台的“工具” -> “更新缓存”来清除缓存。
### 4. 测试上传
完成上述步骤后,你应该可以上传SVG格式的图片了。尝试上传一个SVG文件,看看是否能够成功。
### 注意事项
- 修改核心文件可能会导致系统不稳定,建议在修改前备份相关文件。
- 如果你使用的是Discuz的插件或模板,可能需要检查这些插件或模板是否有额外的上传限制。
通过以上步骤,你应该能够成功上传SVG格式的图片到Discuz的圈子顶部。如果还有其他问题,欢迎继续提问!
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。 |