我需要上传 .svg 文件。为此,我将“svg”添加到我的 config.yml、上传字段允许的扩展名以及 asset/ 中的 .htacces。另外,我的所有资产目录都有 CHMOD 777。
文件已上传但未附加。相反,我在上传字段中收到此错误语法错误:意外的标记
File:
allowed_extensions:
- svg
Image:
allowed_extensions:
- svg
$logo->setAllowedExtensions(array('jpg', 'jpeg', 'png', 'gif', 'svg'));
Deny from all
<FilesMatch "\.(?i:html|htm|xhtml|js|css|bmp|png|gif|jpg|jpeg|ico|pcx|tif|tiff|au|mid|midi|mpa|mp3|ogg|m4a|ra|wma|wav|cda|avi|mpg|mpeg|asf|wmv|m4v|mov|mkv|mp4|ogv|webm|swf|flv|ram|rm|doc|docx|txt|rtf|xls|xlsx|pages|ppt|pptx|pps|csv|cab|arj|tar|zip|zipx|sit|sitx|gz|tgz|bz2|ace|arc|pkg|dmg|hqx|jar|xml|pdf|gpx|kml|svg)$">
Allow from all
</FilesMatch>
Silverstripe (3.1) 不允许您保存svg文件作为图像数据类型。
这可能与PHP GD 库(我不确定),银条Image
类用途。
相反,您可以保存svg文件为File
数据类型。
为此,您需要添加svg文件类型为File
allowed_extensions
在你的 yml 配置文件中(正如你在问题中发布的那样):
File:
allowed_extensions:
- svg
在您的 Page 或 DataObject 类中添加File
关系并设置你的UploadField
:
private static $has_one = array(
'SVGFile' => 'File'
);
public function getCMSFields()
{
$fields = parent::getCMSFields();
$fields->addFieldToTab('Root.SVG', UploadField::create('SVGFile', 'SVG File'));
return $fields;
}
在页面模板中,您可以根据需要使用文件 URL 加载 svg。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)