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 <[email protected]> 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; > } > _______________________________________________ talk mailing list [email protected] http://lists.openstreetmap.org/listinfo/talk

