WiredHome Posted January 23, 2010 Share Posted January 23, 2010 I have some KML files with client information in them, and want to make them accessible only by logged on users - then delivering them to google maps. So, the KML files are in a secure folder and as you'll see below I use readfile to send them out. Through various web browsers, I can open the link (google earth is configured, starts, and works great), giving that same link to google maps fails with a file not found error. The minimalist [unsecured] version for debugging this "f.php" script - <?php $t = "test.kml"; header("Content-Type: application/vnd.google-earth.kml+xml"); header("Content-Length: " . filesize($t)); readfile($t); ?> this allows a: http://www.mysite.com/f.php and b: http://www.mysite.com/test.kml dropping a into http://maps.google.com/ fails and dropping b into http://maps.google.com/ works fine. I've read and worked it from a "header" perspective and am very sure I'm not introducing characters ahead of the header. I can in fact download the file just fine (saving or launching into Google Earth), but google maps is not accepting it. The PHP script Header from the PHP delivered version: ============== HTTP/1.1 200 OK Server: Microsoft-IIS/5.0 Date: Sat, 23 Jan 2010 15:55:18 GMT X-Powered-By: ASP.NET X-Powered-By: PHP/5.2.11 Content-Type: application/vnd.google-earth.kml+xml Content-Length: 390080 <?xml version="1.0" encoding="UTF-8"?> ... the rest of the file streams from here ... ============== and direct from the IIS delivered version it looks like this: ============== HTTP/1.1 200 OK Server: Microsoft-IIS/5.0 X-Powered-By: ASP.NET Date: Sat, 23 Jan 2010 15:56:53 GMT Content-Type: application/vnd.google-earth.kml+xml Accept-Ranges: bytes Last-Modified: Mon, 18 Jan 2010 20:57:57 GMT ETag: "104b82e98098ca1:dd1" Content-Length: 390080 <?xml version="1.0" encoding="UTF-8"?> ============== I've tried various modifications to the headers, within the constraints of PHP control, but have been unsuccessful. For example, adding - header("Accept-Ranges: bytes"); header("Last-Modified: Mon, 18 Jan 2010 20:57:57 GMT"); results in ============== HTTP/1.1 200 OK Server: Microsoft-IIS/5.0 Date: Sat, 23 Jan 2010 16:03:47 GMT X-Powered-By: ASP.NET X-Powered-By: PHP/5.2.11 Accept-Ranges: bytes Last-Modified: Mon, 18 Jan 2010 20:57:57 GMT Content-Type: application/vnd.google-earth.kml+xml Content-Length: 390080 <?xml version="1.0" encoding="UTF-8"?> ============== I've looked at timing aspects, and the server response to either query is within a fraction of a second - the php being about 1/4 second slower. An easy recommendation might be to post this into a google maps forum too, and I'm seeking out the right one to do so. Link to comment https://forums.phpfreaks.com/topic/189539-php-file-delivery-of-kml-file-not-accepted-by-google-maps/ Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.