Craft CMS のアセットフィールドで .ico の拡張子のファイルをアップロードできるようにする方法をご紹介します。
Craft CMS のアセットフィールドでは、デフォルトの状態では .ico の拡張子のファイルはアップロードできません。
アップロードできるファイルの種類は general.php の allowedFileExtensions で定義できるのですが、この初期値が、
'7z, aiff, asf, avi, bmp, csv, doc, docx, fla, flv, gif, gz, gzip, htm, html, jp2, jpeg, jpg, jpx, js, mid, mov, mp3, mp4, m4a, m4v, mpc, mpeg, mpg, ods, odt, ogg, ogv, pdf, png, potx, pps, ppsm, ppsx, ppt, pptm, pptx, ppz, pxd, qt, ram, rar, rm, rmi, rmvb, rtf, sdc, sitd, svg, swf, sxc, sxw, tar, tgz, tif, tiff, txt, vob, vsd, wav, webm, wma, wmv, xls, xlsx, zip'
となっているために .ico がアップロードできないのです。
したがって、 .ico をアップロードできるようにするには、この初期値に ico を追加して general.php に定義してあげます。
なお、このように allowedFileExtensions の初期値に拡張子を追加したいときは extraAllowedFileExtensions に追加したい拡張子を配列でセットしてあげれば、 allowedFileExtensionsにマージされるようになっています。
'extraAllowedFileExtensions' => ['ico'],
もちろんこれを機会に、上記の値を必要なものだけに絞って設定してしまってもいいでしょう。
なお、ここで ico を追加したとしても、フィールドの設定で、 Restrict allowed file types? にしてあるとダメなので注意しましょう。