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'));
}