Php 无法在SilverStripe 4中上载文件

Php 无法在SilverStripe 4中上载文件,php,silverstripe,silverstripe-4,Php,Silverstripe,Silverstripe 4,我创建了一个对SiteConfig的简单扩展,将徽标上传字段添加到设置部分。但是,服务器在上载文件时返回错误 SiteConfig.php namespace mymodule\siteconfig; use SilverStripe\ORM\DataExtension; use SilverStripe\Forms\FieldList; use SilverStripe\AssetAdmin\Forms\UploadField; class SiteConfig extends DataE

我创建了一个对
SiteConfig
的简单扩展,将徽标上传字段添加到设置部分。但是,服务器在上载文件时返回错误

SiteConfig.php

namespace mymodule\siteconfig;

use SilverStripe\ORM\DataExtension;
use SilverStripe\Forms\FieldList;
use SilverStripe\AssetAdmin\Forms\UploadField;

class SiteConfig extends DataExtension {

    private static $has_one = array(
        'Logo' => 'SilverStripe\\Assets\\File'
    );

    public function updateCMSFields(FieldList $fields) {

        $fields->addFieldToTab('Root.Main', $logo = UploadField::create('Logo', 'Logo upload'));

    }

}

服务器的错误日志未显示与此错误相关的任何内容。这是怎么回事

更新


我刚刚尝试将一个文件上载到CMS中的文件部分,得到了完全相同的错误。

我认为您可能需要将$has_one数组设置更改为类似这样的设置:“Logo'=>“Image”“Logo'=>“Image”将无法工作,因为ss4中已没有全局类。宁愿使用'Logo'=>File::class或'Image'=>Image::class,也不要将FQCN硬编码为字符串。至于错误,它不太可能与您的代码有关。503更可能是您的环境中的问题。通常,最好解释一个解决方案,而不是仅仅发布几行匿名代码。您可以阅读,而且您只需将上述代码替换到您的解决方案中,就可以了。您已经显示了问题的屏幕截图,因此在解决方案中使用此代码并不是什么大问题。
private static $has_one = [
    'LogoImage' => Image::class,
];

public function updateCMSFields(FieldList $fields) {

   $fields->addFieldToTab('Root.Main', UploadField::create('LogoImage', 'Logo'));

}