package btools.server; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.net.URLDecoder; public class CgiUpload { public static void main(String[] args) { try { _main(args); } catch( Exception e ) { System.out.println( "unexpected exception: " + e ); } } private static void _main(String[] args) throws Exception { String htmlTemplate = args[0]; String customeProfileDir = args[1]; String id = "" + System.currentTimeMillis(); // cgi-header System.out.println( "Content-type: text/html" ); System.out.println(); // write the post message to a file BufferedWriter bw = new BufferedWriter( new OutputStreamWriter( new FileOutputStream( customeProfileDir + "/" + id + ".brf" ) ) ); BufferedReader ir = new BufferedReader( new InputStreamReader( System.in ) ); String postData = ir.readLine(); String[] coordValues = new String[4]; if( postData != null ) { int coordsIdx = postData.indexOf( "coords=" ); if ( coordsIdx >= 0) { int coordsEnd = postData.indexOf( '&' ); if ( coordsEnd >= 0) { String coordsString = postData.substring( coordsIdx + 7, coordsEnd ); postData = postData.substring( coordsEnd+1 ); int pos = 0; for(int idx=0; idx<4; idx++) { int p = coordsString.indexOf( '_', pos ); coordValues[idx] = coordsString.substring( pos, p ); pos = p+1; } } } int sepIdx = postData.indexOf( '=' ); if ( sepIdx >= 0 ) postData = postData.substring( sepIdx + 1 ); postData = URLDecoder.decode( postData, "ISO-8859-1" ); bw.write( postData ); } bw.close(); // echo the template with a custom select item BufferedReader br = new BufferedReader( new InputStreamReader( new FileInputStream( htmlTemplate ) ) ); for(;;) { String line = br.readLine(); if ( line == null ) break; if ( line.indexOf( "" ) >= 0 ) { line = " "; } else if ( line.indexOf( "paste your profile here" ) >= 0 ) { System.out.println( ""; } else { line = replaceCoord( line, "lonfrom", coordValues[0] ); line = replaceCoord( line, "latfrom", coordValues[1] ); line = replaceCoord( line, "lonto", coordValues[2] ); line = replaceCoord( line, "latto", coordValues[3] ); } System.out.println( line ); } br.close(); } private static String replaceCoord( String line, String name, String value ) { String inputTag = "