[OSM-talk] [OSM-dev] Wishes
Bernhard zwischenbrugger
bz at datenkueche.com
Fri Mar 19 13:46:56 GMT 2010
hi
thanks to John Smith the upload is working now.
If you have an iphone, type
http://khtml.org
to the safari url line.
click "REC"
walk around
click "upload"
At the moment it's all with one account.
You will find the traces here:
http://api06.dev.openstreetmap.org/traces
oAuth will follow
Bernhard
John Smith schrieb:
> On 19 March 2010 00:21, Bernhard zwischenbrugger <bz at datenkueche.com> wrote:
>
>> GPX is XML and there is no need for multipart/form-data upload.
>>
>
> GPX might be XML, but it's not HTTP, and if you want to upload a file
> over HTTP you need to talk multipart/form...
>
>
>> To debug that kind of uploads is not possible.
>>
>
> There is plenty of ways to debug, just like everything else it's a
> skill set, in this case you need to sniff packets...
>
> <?
> $user = 'username';
> $pass = 'password';
> $file = '/tmp/filename.gpx';
>
> $url = "/api/0.6/gpx/create";
>
> $file = trim($file);
> if($file == '')
> continue;
>
> if(!file_exists($file))
> continue;
>
> $boundary = '----------'.sha1(date("U").$fn.rand(0, date("U")));
> $fn = md5(basename(date("U").$file.$boundary));
> $cmd = "grep '<trkpt' '$file'|wc -l";
> $trackpoints = trim(`$cmd`);
>
> if($trackpoints >= 300)
> {
> $body = "";
> $fn .= '.gpx';
> $data = gzencode(file_get_contents($file));
>
> $body .= '--'.$boundary."\r\n";
> $body .= "Content-Disposition: form-data; name=\"file\";
> filename=\"$fn.gz\"\r\n\r\n";
> $body .= $data."\r\n";
> $body .= '--'.$boundary."\r\n";
> $body .= "Content-Disposition: form-data; name=\"description\"\r\n\r\n";
> $body .= "uploaded route.\r\n";
> $body .= '--'.$boundary."\r\n";
> $body .= "Content-Disposition: form-data; name=\"tags\"\r\n\r\n";
> $body .= "automatic_upload ".date("Y F")."\r\n";
> $body .= '--'.$boundary."\r\n";
> $body .= "Content-Disposition: form-data; name=\"public\"\r\n\r\n";
> $body .= "1\r\n";
>
> $body .= '--'.$boundary."--\r\n";
>
> $head = "POST $url HTTP/1.1\r\n";
> $head .= "host: www.openstreetmap.org\r\n";
> $head .= "Transfer-Encoding: 8bit\r\n";
> $head .= "Authorization: Basic ".base64_encode($user.':'.$pass)."\r\n";
> $head .= "Content-Length: ".strlen($body)."\r\n";
> $head .= "Content-type: multipart/form-data; boundary=$boundary\r\n";
> $head .= "Connection: close\r\n\r\n".$body;
> //echo $head;
>
> if(($fp = @fsockopen("www.openstreetmap.org", 80)) === FALSE)
> continue;
>
> fputs($fp, $head);
> $line = $lastline = "";
> $start = false;
> while(!feof($fp))
> {
> $line = trim(fgets($fp));
> if($start == false && $line == '')
> {
> $start = true;
> continue;
> }
> if($start == false)
> continue;
>
> $id = $line;
> break;
> }
> fclose($fp);
> if($id <= 0)
> continue;
> }
>
More information about the talk
mailing list