插件:FoF Upload / FoF Upload QCloud
参考:Tempest的博客
他的博客介绍的已经很清楚了,在此做一个备份,并添加注意事项(加粗部分)
- 正确的在服务器安装并配置 Flarum。
- 正确的安装了 FOF upload 插件及其 S3 扩展。
- 关闭站点的 open_basedir 防跨站,安装 PHP 的 exif 扩展。
- 开通腾讯云COS(对象存储)服务,并创建一个存储桶。
- 要注意你cos桶的防盗链设置和回源设置。(回源设置一个桶其实只有优先级最高的那个有作用,我站点都在一个服务器,所以回源地址直接写服务器ip即可,你们站点不在一个服务器的,那把桶分开是最好的)
- 检查一下你云服务商那边的授权密钥还能不能用
然后我这边还有点报错,AI解决了
POST https://bbs.cathi.cn/api/fof/upload
TypeError: FoF\Upload\File::setTagAttribute(): Argument #1 ($template) must be of type FoF\Upload\Contracts\Template, null given, called in /www/wwwroot/bbs.cathi.cn/vendor/illuminate/database/Eloquent/Concerns/HasAttributes.php on line 1000 and defined in /www/wwwroot/bbs.cathi.cn/vendor/fof/upload/src/File.php:119
Stack trace:
#0 /www/wwwroot/bbs.cathi.cn/vendor/illuminate/database/Eloquent/Concerns/HasAttributes.php(1000): FoF\Upload\File->setTagAttribute()
这是一个错误提示,指出在 File.php 文件的第 119 行发生了类型错误。错误发生在 setTagAttribute() 方法中,该方法的第一个参数应该是 FoF\Upload\Contracts\Template 类型,但是实际传递了 null 值。这导致了错误。
您需要返回到相应的代码行,检查调用 setTagAttribute() 方法的地方,并确保传递的参数是正确的类型,即 FoF\Upload\Contracts\Template 类型的对象。如果传递的是 null 值,也需要检查调用该方法的代码,并确保传递正确的参数。
以下是可能的修改,以解决这个问题:
public function setTagAttribute(?Template $template)
{
if ($template) {
$this->attributes['tag'] = $template->tag();
}
}
在上面提供的代码中,我们将 setTagAttribute() 方法修改为接受可空的 Template 对象。通过检查传入的参数是否为非空,然后存储标签属性值,可以避免传递 null 值导致的类型错误。
请确保将此修改应用到您的代码中,并检查是否传递正确的参数类型。这样可以帮助解决您遇到的问题。
- 顺便放一下腾讯cos桶的配置图

还有别的问题留言就好了😄