如何在Silverstripe中启用KMZ / KML / GPX文件的上传?

时间:2013-10-01 00:42:42

标签: php silverstripe

我在Silverstripe 3中设置了一个网站,并且在将KMZ / KML文件上传到CMS时遇到了一个奇怪的问题。

最终目标是允许CMS用户将多个KMZ / KML / GPX文件上传到页面。然后,这些文件将在Google地图上显示为路线。

这是has_many声明:

static $has_many = array(
  'RouteFiles' => 'File'
);

这是getCMSFields代码:

$routeFilesField = new UploadField('Route Files', 'Upload GPX/KMZ/KML files for your proposed route.', $this->RouteFiles()); 
$routeFilesField->getValidator()->allowedExtensions = array('kmz', 'kml', 'gpx');
$fields->addFieldToTab('Root.Map', $routeFilesField);

我已将扩展名添加到 /assets/.htaccess 文件的FilesMatch部分。

当我将KMZ或KML文件上传到CMS时,我在上传字段中收到以下消息:

找不到文件信息

我需要做些什么来使这项工作?

2 个答案:

答案 0 :(得分:1)

将以下内容添加到我的_config.php对我有用:

File::$allowed_extensions[] = 'kmz';
File::$allowed_extensions[] = 'kml';
File::$allowed_extensions[] = 'gpx';

我没有做任何其他事情来允许这些文件类型。上传字段工作并链接到前端文件工作。

答案 1 :(得分:0)

此消息表示上传到临时上​​传文件夹失败。您应该检查文件夹是否可写或更改,请参阅http://www.php.net/manual/en/ini.core.php#ini.upload-tmp-dir