2013-10-01 2 views
0

Silverstripe 3에 사이트를 설정하고 있으며 KMZ/KML 파일을 CMS에 업로드하는 것과 관련된 이상한 문제가 있습니다.Silverstripe에서 KMZ/KML/GPX 파일을 업로드하려면 어떻게해야합니까?

최종 목표는 CMS 사용자가 여러 KMZ/KML/GPX 파일을 페이지에 업로드 할 수있게하는 것입니다. 그러면이 파일은 Google지도의 경로로 표시됩니다. 나는 /assets/.htaccess 파일의 FilesMatch 섹션에 확장을 추가 한

$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); 

:

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

이것은 getCMSFields 코드는 다음과 같습니다

은 has_many 선언이다.

내가 업로드 필드에 다음과 같은 메시지가 얻을 CMS에 KMZ 또는 KML 파일을 업로드 할 때 :

를 찾을 수 없습니다

파일 정보를 다른 내가이 일을하기 위해 어떻게해야합니까 ?

답변

1

이 나를 위해 일했다 나의 _config.php에 다음 추가를 참조해야합니다

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

나는 이러한 파일 형식을 허용하는 다른 작업을 수행 할 필요가 없었다. 업로드 된 필드가 작동하고 프런트 엔드의 파일로 연결되었습니다.

+0

SS 3.1에서 'File :: $ allowed_extensions'를 호출하면 개인 속성이므로 치명적인 오류가 발생합니다. 이 문제를 해결하기 위해 config 시스템을 사용하여 확장 프로그램 ('$ extensions = File :: config() -> allowed_extensions;')을 얻고 아이템을 추가 할 수 있습니다 ('$ extensions [] = 'kml';'). 값을 다시 설정하십시오 ('File :: config() -> allowed_extensions = $ extensions;'). – Turnerj

+1

또는 [다른 대답] (http://stackoverflow.com/a/25298213/1676444)에서 지정한대로 YAML 구성 파일을 사용하여 추가로 허용되는 확장명을 추가 할 수 있습니다. – Turnerj

관련 문제