哈喽各位,我是小芹哦喵,晚上看着自己的图床突发奇想,为何不写一个小教程呢喵?于是决定写本篇文章喵
本文分为三章

| 目录喵~ | ||
|---|---|---|
| 1.图片后缀名 | 2.注意事项 | 3.我的配置参考喵~ |
首先是图片后缀名
可上传的图片后缀名是一个图床的定义喵,一般的站长选择常见的一下图片格式就可以了喵~,因为太多的定义会导致杂乱和安全性问题喵
define('ALLOWED_EXTENSIONS', ['jpg', 'jpeg', 'png', 'gif', 'webp','avif', 'ico']);
(先行定义允许上传的格式喵~)
define('ALLOWED_MIME_TYPES', [
'image/jpeg',
'image/png',
'image/gif',
'image/webp',
'image/x-icon',
'image/avif'
** 'image/vnd.microsoft.icon',(!!!重要)**
(然后根据定义的格式些mine类型,按照image/格式的方式写,如:image/avif)
一般来说avif+jpg+jpeg+png+gif+webp+ico这个组合已经够用了喵~,tiff这些及其冷门的图片格式就不用加了秒~,当然,小芹图床支持所有格式的喵,我只是把代码扣下来了喵~
注意事项(FAQ)
Q:为啥我定义image/x-icon却还是上传不了有些icon??? A:其实好久之前刚刚开图床的我也很奇怪,我去别的网站转换的图片格式限制了,后来发现icon有两种格式的定义
1.'image/x-icon',
2.'image/vnd.microsoft.icon'
image/x-icon 与 image/vnd.microsoft.icon 都是用来表示 icon 文件类型的 MIME,它们的区别是,一个是”官方“的 MIME ,另一个是”非官方“的 MIME:
image/vnd.microsoft.icon 是被 IANA(一个用来管理 MIME 标准的机构)官方注册的 MIME image/x-icon 没有被 IANA 注册
image/x-icon 与 image/vnd.microsoft.icon 的关系我从https://nicechiblog.com/article/20/article_1633055519767.html 挑了点内容来讲解
| 内容 |
|---|
| **Wikipedia 中有这么一句话: |
While the IANA-registered MIME type for ICO files is image/vnd.microsoft.icon, it was submitted to IANA in 2003 by a third party and is not recognised by Microsoft software, which uses image/x-icon instead.
从上面的这句话可以看出,虽然 image/vnd.microsoft.icon 有 Microsoft 的字样,好像是由微软(ICO 格式的图片一开始就是在 Windows 上使用的)提交给 IANA 的 MIME,但事实上 image/vnd.microsoft.icon 与微软没有直接的联系,恰恰相反,微软使用的是 image/x-icon 而不是 image/vnd.microsoft.icon。
从目前来看,大多数的知名网站使用的都是 image/x-icon,如百度与 Google 等等,所以应该来说,image/x-icon 才是事实上 ICO 文件的 MIME 标准,但浏览器一般来说都会正确地识别这两种的 MIME。** |
实际上,每一种格式都有不同的mine类型,上网百度一下就好,mine类型并不是添加的越多越好哦喵~
(以后还会添加....)
我的配置参考喵~
define('ALLOWED_EXTENSIONS', ['jpg', 'jpeg', 'png', 'gif', 'webp', 'bmp', 'svg', 'tiff', 'ico','tif','svg','jfif','pjpeg','pjp','apng','heif','heic','avif']);
define('ALLOWED_MIME_TYPES', [
'image/jpeg',
'image/png',
'image/gif',
'image/webp',
'image/bmp',
'image/svg+xml',
'image/tiff',
'image/x-icon',
'image/vnd.microsoft.icon',// 修正ICO的MIME类型
'image/apng',
'image/heif',
'image/heic',
'image/avif',
'image/jfif',
]);


Comments | NOTHING