2016-10-08 9 views
0

У меня есть страница PHP, в которую входит файл KMZ для загрузки. Этот KMZ содержит KML с наложением JPEG.Правильный заголовок и конфигурация файлов KMZ, сгенерированных в PHP на Apache

Я предполагаю, что этот файл верен, потому что KML может быть открыт Google Earth без проблем. Это фрагмент кода, который я использую для создания KMZ из KML и JPEG Overlay:

$zip = new ZipArchive(); 

$tmp_file = tempnam('.',''); 
$zip->open($tmp_file, ZipArchive::CREATE); 

$download_file = file_get_contents($kml); 
$zip->addFromString(basename($kml),$download_file); 

$download_file = file_get_contents($jpeg); 
$zip->addFromString("files/".basename($jpeg),$download_file); 

$zip->close(); 

header('Content-disposition: attachment; filename=test.kmz'); 
header('Content-Type: application/vnd.google-earth.kmz .kmz'); 
readfile($tmp_file); 

Проблема заключается в том, что как в OS X и Windows, КМЗ не может быть открыт в Google Планета Земля.

Но если я разархивирую его в Windows, результат KML + JPEG открывается без проблем.

В OSX я не могу разархивировать KMZ, потому что он поврежден. Я думаю, что проблема может быть в заголовке или типе.

У кого-то есть опыт?

ответ

1

KMZ имеет стандартный формат, который сжимает файл doc.kml. Вся строка kml должна быть записана в файле doc.kml. В PHP я бы сделал

$zip->addFromString("doc.kml", $kmlString); 

 Смежные вопросы

  • Нет связанных вопросов^_^