Правильный заголовок и конфигурация для файлов KMZ, сгенерированных в PHP на Apache

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

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

$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 KMZ нельзя открыть в Google Earth.

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

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

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

0

Решение

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

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

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]