<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://forums.asp.net/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Migrating from PHP to ASP.NET</title><link>http://forums.asp.net/44.aspx</link><description>Discuss moving from PHP to ASP.NET.</description><dc:language>en</dc:language><generator>CommunityServer 2007 SP1 (Build: 20510.895)</generator><item><title>Re: Replacing CGI Script called from Java Applet</title><link>http://forums.asp.net/thread/3483624.aspx</link><pubDate>Thu, 29 Oct 2009 12:48:04 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:3483624</guid><dc:creator>tux</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/3483624.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=44&amp;PostID=3483624</wfw:commentRss><description>&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Solved using this code:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;pre name="code" class="c-sharp"&gt; Function readme() As String
    Dim sr As System.IO.StreamReader = New System.IO.StreamReader(Page.Request.InputStream())
    Return sr.ReadToEnd().Trim()
End Function


Sub WriteToFile(Optional ByRef strStringToWrite As String = &amp;quot;Hello World&amp;quot;)
    Dim fp As System.IO.StreamWriter

    Try
        fp = System.IO.File.CreateText(Server.MapPath(&amp;quot;./&amp;quot;) &amp;amp; &amp;quot;test.txt&amp;quot;)
        fp.WriteLine(strStringToWrite)
        Response.Write(&amp;quot;File Succesfully created!&amp;quot;)
        fp.Close()
    Catch err As Exception
        Response.Write(&amp;quot;File Creation failed. Reason is as follows &amp;quot; + err.ToString())
    Finally

    End Try
End Sub

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    &amp;#39;Response.Write(readme)


    WriteToFile(readme())

    &amp;#39;Dim p As String = Request.Form(0)
    &amp;#39;WriteToFile(p)

    &amp;#39;p = Request.Form(2)
    &amp;#39;WriteToFile(p)
End Sub&lt;/pre&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;</description></item><item><title>Re: Replacing CGI Script called from Java Applet</title><link>http://forums.asp.net/thread/3292423.aspx</link><pubDate>Tue, 14 Jul 2009 12:32:37 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:3292423</guid><dc:creator>tux</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/3292423.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=44&amp;PostID=3292423</wfw:commentRss><description>&lt;p&gt;&lt;BLOCKQUOTE&gt;&lt;div&gt;&lt;img src="/Themes/fan/images/icon-quote.gif"&gt; &lt;strong&gt;tux:&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;bump!&lt;/div&gt;&lt;/BLOCKQUOTE&gt;&amp;nbsp;&lt;/p&gt;</description></item><item><title>Re: Replacing CGI Script called from Java Applet</title><link>http://forums.asp.net/thread/3247425.aspx</link><pubDate>Sat, 20 Jun 2009 11:42:47 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:3247425</guid><dc:creator>tux</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/3247425.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=44&amp;PostID=3247425</wfw:commentRss><description>bump!</description></item><item><title>Re: Replacing CGI Script called from Java Applet</title><link>http://forums.asp.net/thread/3223959.aspx</link><pubDate>Wed, 10 Jun 2009 20:55:25 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:3223959</guid><dc:creator>tux</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/3223959.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=44&amp;PostID=3223959</wfw:commentRss><description>bump.</description></item><item><title>Re: Replacing CGI Script called from Java Applet</title><link>http://forums.asp.net/thread/3220411.aspx</link><pubDate>Tue, 09 Jun 2009 13:50:51 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:3220411</guid><dc:creator>tux</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/3220411.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=44&amp;PostID=3220411</wfw:commentRss><description>&lt;p&gt;Bump!&lt;/p&gt;</description></item><item><title>Replacing CGI Script called from Java Applet</title><link>http://forums.asp.net/thread/3213341.aspx</link><pubDate>Fri, 05 Jun 2009 14:37:20 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:3213341</guid><dc:creator>tux</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/3213341.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=44&amp;PostID=3213341</wfw:commentRss><description>&lt;p&gt;Question:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;I have a CAD image viewer applet coded in Java in my webpage.&lt;/p&gt;
&lt;p&gt;You can edit the CAD file, and save the result back to the server.&lt;/p&gt;
&lt;p&gt;The way this is accomplished is this:&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;The Java Applet calls a CGI script (Perl), and this script in turn saves the edits in a textfile at the appropriate location.&lt;/p&gt;
&lt;p&gt;I now want to replace the Perl Script by a ASP.NET&amp;nbsp;page&lt;/p&gt;
&lt;p&gt;I&amp;#39;ve written a ASP.NET page below, which can get data send to it by http post, e.g. i type in &lt;a href="http://localhost/testfolder/CGIreplacement.aspx?field1=abc&amp;amp;field2=cde&amp;amp;field3=ghi"&gt;http://localhost/testfolder/CGIreplacement.aspx?field1=abc&amp;amp;field2=cde&amp;amp;field3=ghi&lt;/a&gt;&amp;nbsp;in the browser address field, then the CGIreplacement.aspx page returns field1=abc field2=cde etc.&amp;nbsp; as the page&amp;#39;s content.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;But when I set the page as argument to the java applet, the page gets called, but NO fields can be read...&lt;/p&gt;
&lt;p&gt;I assume it has to do with the way the cgi script gets called. There are several possibilities, listed below:&lt;/p&gt;
&lt;p&gt;I use this method: 
&lt;p&gt;&amp;lt;&lt;span class="tag"&gt;param&lt;/span&gt;&lt;span class="attr"&gt; name=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;save_redline_to_url&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; value=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;http://localhost/signedobfu/redsaver.cgi&amp;quot;&lt;/span&gt;&amp;gt;&lt;br /&gt;&amp;lt;&lt;span class="tag"&gt;param&lt;/span&gt;&lt;span class="attr"&gt; name=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;save_redline_file_to_url&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; value=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;../drawing_redline.dwf&amp;quot;&lt;/span&gt;&amp;gt;&lt;br /&gt;
&lt;p&gt;I figured I should probably use a non-TMS method, whatever that means. 
&lt;p&gt;But why can&amp;#39;t I get Input???&lt;pre class="coloredcode"&gt;SAVE REDLINES TO SERVER 
Save with window dialog box displayed using TMS cgi script 
&amp;lt;param name=&amp;quot;redlinelocation&amp;quot; value=&amp;quot;server&amp;quot;&amp;gt;
&amp;lt;&lt;span class="tag"&gt;param&lt;/span&gt;&lt;span class="attr"&gt; name=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;redline_cgi&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; value=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;http://localhost/signedobfu/redsaver.cgi&amp;quot;&lt;/span&gt;&amp;gt;
&amp;lt;&lt;span class="tag"&gt;param&lt;/span&gt;&lt;span class="attr"&gt; name=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;redline_file_path&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; value=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;../drawing_redlined.dwf&amp;quot;&lt;/span&gt;&amp;gt;
Save redline only to the server without popup dialog box using TMS cgi script or servlet (script example) 
&amp;lt;&lt;span class="tag"&gt;param&lt;/span&gt;&lt;span class="attr"&gt; name=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;redlinelocation&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; value=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;server&amp;quot;&lt;/span&gt;&amp;gt;(OPTIONAL)
&amp;lt;&lt;span class="tag"&gt;param&lt;/span&gt;&lt;span class="attr"&gt; name=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;save_redline_to_url&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; value=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;http://localhost/signedobfu/redsaver.cgi&amp;quot;&lt;/span&gt;&amp;gt;
&amp;lt;&lt;span class="tag"&gt;param&lt;/span&gt;&lt;span class="attr"&gt; name=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;save_redline_file_to_url&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; value=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;../drawing_redline.dwf&amp;quot;&lt;/span&gt;&amp;gt;
Save redline only to the server without popup dialog box using TMS cgi script or servlet (servlet example) 
&amp;lt;&lt;span class="tag"&gt;param&lt;/span&gt;&lt;span class="attr"&gt; name=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;redlinelocation&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; value=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;server&amp;quot;&lt;/span&gt;&amp;gt;(OPTIONAL)
&amp;lt;&lt;span class="tag"&gt;param&lt;/span&gt;&lt;span class="attr"&gt; name=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;save_redline_to_url&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; value=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;http://myserver/servlets/Redsaver&amp;quot;&lt;/span&gt;&amp;gt;
&amp;lt;&lt;span class="tag"&gt;param&lt;/span&gt;&lt;span class="attr"&gt; name=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;save_redline_file_to_url&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; value=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;c:/mydrawings/drawings_01/redlines/redline_01.red&amp;quot;&lt;/span&gt;&amp;gt;
Save redline only to the server without popup dialog box using non TMS cgi script 
&amp;lt;&lt;span class="tag"&gt;param&lt;/span&gt;&lt;span class="attr"&gt; name=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;redlinelocation&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; value=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;server&amp;quot;&lt;/span&gt;&amp;gt;(OPTIONAL)
&amp;lt;&lt;span class="tag"&gt;param&lt;/span&gt;&lt;span class="attr"&gt; name=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;save_redline_to_url&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; value=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;http://localhost/signedobfu/yourscript.cgi?saveLocation=../drawing_redlines.dwf&amp;amp;saveURL=true&amp;amp;dn=demo&amp;amp;red=&amp;quot;&lt;/span&gt;&amp;gt;
Save redline in drawing to the server without popup dialog box using TMS cgi script 
&amp;lt;&lt;span class="tag"&gt;param&lt;/span&gt;&lt;span class="attr"&gt; name=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;redlinelocation&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; value=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;server&amp;quot;&lt;/span&gt;&amp;gt;(OPTIONAL)
&amp;lt;&lt;span class="tag"&gt;param&lt;/span&gt;&lt;span class="attr"&gt; name=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;save_redline_to_url&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; value=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;http://localhost:8080/conversiontools/servlet/FileUploadServlet?saveLocation=../drawing_redlines1.dwf&amp;amp;redlinesdwf=&amp;quot;&lt;/span&gt;&amp;gt;
&amp;lt;&lt;span class="tag"&gt;param&lt;/span&gt;&lt;span class="attr"&gt; name=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;save_redline_in_drawing_as&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; value=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;redlinelayer&amp;quot;&lt;/span&gt;&amp;gt;
Save redline in drawing to the server without popup dialog box using non TMS cgi script 
&amp;lt;&lt;span class="tag"&gt;param&lt;/span&gt;&lt;span class="attr"&gt; name=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;redlinelocation&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; value=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;server&amp;quot;&lt;/span&gt;&amp;gt;(OPTIONAL)
&amp;lt;&lt;span class="tag"&gt;param&lt;/span&gt;&lt;span class="attr"&gt; name=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;save_redline_to_url&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; value=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;../signedobfu/yourscript.cgi?saveLocation=../drawing_redlines.dwf&amp;amp;saveURL=true&amp;amp;dn=demo&amp;amp;red=&amp;quot;&lt;/span&gt;&amp;gt;
&amp;lt;&lt;span class="tag"&gt;param&lt;/span&gt;&lt;span class="attr"&gt; name=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;save_redline_in_drawing_as&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; value=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;redlinelayer&amp;quot;&lt;/span&gt;&amp;gt;
&lt;/pre&gt;&amp;nbsp; 
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The CGI perl files&amp;nbsp;contains this:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;pre class="coloredcode"&gt;#!/usr/local/bin/perl 
#
#***********************************************************
#***********************************************************
#  $location IS THE DIRECTORY OF THE REDLINE
#C:\\Inetpub\\wwwroot\\cadviewer\\redlines\\
#/cadviewer/redlines
$location = &lt;span class="st"&gt;&amp;quot;C:\\Inetpub\\wwwroot\\cadviewer\\redlines\\&amp;quot;&lt;/span&gt;;
#
#***********************************************************



my $logfile = &lt;span class="st"&gt;&amp;quot;c:\\temp\\logfile.txt&amp;quot;&lt;/span&gt;;
open(LOGFILE , &lt;span class="st"&gt;&amp;quot;&amp;amp;gt; &amp;quot;&lt;/span&gt; .  $logfile) ||  &amp;amp;sendNotice;
print LOGFILE &lt;span class="st"&gt;&amp;quot;Running cv7 redsaver\n&amp;quot;&lt;/span&gt;;


# Print out a content-type for HTTP/1.0 compatibility
print &lt;span class="st"&gt;&amp;quot;Content-type: text/html\n\n&amp;quot;&lt;/span&gt;;
#
#test whether it&lt;span class="st"&gt;&amp;#39;s via a firewall (i.e. GET multiple times)
# or direct, i.e. POST
$method = $ENV{&amp;#39;&lt;/span&gt;REQUEST_METHOD&lt;span class="st"&gt;&amp;#39;};
if ($method eq &amp;quot;GET&amp;quot;) {    
    $form_info = $ENV{&amp;#39;&lt;/span&gt;QUERY_STRING&lt;span class="st"&gt;&amp;#39;};
	print LOGFILE &amp;quot;Method found was: REQUEST_METHOD\n&amp;quot;;
}
elsif ($method eq &amp;quot;POST&amp;quot;){
    # Get the input
    $data_size = $ENV{&amp;#39;&lt;/span&gt;CONTENT_LENGTH&lt;span class="st"&gt;&amp;#39;};
    read(STDIN,$form_info,$data_size);
	print LOGFILE &amp;quot;\nMethod found was: POST\n&amp;quot;;
}
else {
    print &amp;quot;Client used unsupported method&amp;quot;;
	print LOGFILE &amp;quot;\nMethod found was: Client used unsupported method\n&amp;quot;;
}
#***********************************************************
#***********************************************************
#   testsave.txt IS THE LOG FILE TO MAKE SURE THAT THIS SCRIPT HAS &amp;quot;WRITE&amp;quot; PERMISSION
#   ON THE SERVER.  IF TESTSAVE.TXT CANNOT BE FOUND, THEN THIS SCRIPT CANNOT
#   WRITE TO A FILE ON THIS SERVER ===&amp;gt; REDLINES CANNOT BE SAVED
#
#
print LOGFILE &amp;quot;$form_info, datasize=$data_size&amp;quot;;
print LOGFILE &amp;quot;--------\n\n\n&amp;quot;;
#
#
#   END TESTING &amp;quot;WRITE&amp;quot; PRIVILEDGE ON THE SERVER
#***********************************************************
#
# Split the name-value pairs
@pairs = split(/&amp;amp;/, $form_info);


foreach $pair (@pairs)
{
     ($name, $value) = split(/=/, $pair);

#     # Un-Webify plus signs and %-encoding
     $value =~ tr/+/ /;
     $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack(&amp;quot;C&amp;quot;, hex($1))/eg;
 
     # Uncomment for debugging purposes
     #print &amp;quot;Setting &amp;lt;I&amp;gt;$name&amp;lt;/I&amp;gt; to &amp;lt;B&amp;gt;$value&amp;lt;/B&amp;gt;&amp;lt;P&amp;gt;&amp;quot;;

     $FORM{$name} = $value; 
#     print # &amp;quot;&amp;amp;lt;I&amp;gt;\$FORM{ &amp;quot;, $name,&amp;quot; }&amp;lt;/I&amp;gt; to &amp;lt;B&amp;gt;&amp;quot;,$FORM{ &amp;#39;&lt;/span&gt;$name&lt;span class="st"&gt;&amp;#39; },&amp;quot;&amp;amp;lt;/B&amp;gt;&amp;lt;P&amp;gt;&amp;quot;;
print LOGFILE  &amp;quot;name=$name, value=$value \n&amp;quot;;
}

# If the description is blank, then give a &amp;quot;blank form&amp;quot; response
# &amp;amp;blank_response(&amp;quot;Name:&amp;quot;) unless $FORM{&amp;#39;&lt;/span&gt;your_name&lt;span class="st"&gt;&amp;#39;};

#$FORM{&amp;#39;&lt;/span&gt;name&lt;span class="st"&gt;&amp;#39;} =~ s/ /_/g;

# Now save data
$saveURL = $FORM{&amp;#39;&lt;/span&gt;saveURL&lt;span class="st"&gt;&amp;#39;};
$location = &amp;quot;$location$FORM{&amp;#39;&lt;/span&gt;saveLocation&lt;span class="st"&gt;&amp;#39;}&amp;quot;;
if($saveURL eq &amp;quot;true&amp;quot; )
{
   $file_full = $FORM{&amp;#39;&lt;/span&gt;na&lt;span class="st"&gt;&amp;#39;};
#   $location =  &amp;quot;$baseDir$FORM{&amp;#39;&lt;/span&gt;saveLocation&lt;span class="st"&gt;&amp;#39;}&amp;quot;;
   
}
else
{
   $file_first = join(&amp;quot;_&amp;quot;,$FORM{&amp;#39;&lt;/span&gt;dn&lt;span class="st"&gt;&amp;#39;},$FORM{&amp;#39;&lt;/span&gt;na&lt;span class="st"&gt;&amp;#39;});
#   $file_full = join(&amp;quot;.&amp;quot;,$file_first,&amp;quot;red&amp;quot;);
   $file_full = join(&amp;quot;_&amp;quot;,$FORM{&amp;#39;&lt;/span&gt;dn&lt;span class="st"&gt;&amp;#39;},$FORM{&amp;#39;&lt;/span&gt;na&lt;span class="st"&gt;&amp;#39;});

}
$file_name = join (&amp;quot;&amp;quot;,$location,$file_full);
#***********************************************************
#***********************************************************
#    FOR DEBUGING PURPOSE.  CAN BE REMOVED IF NECESSARY
#
print LOGFILE &amp;quot;1. dn=$FORM{&amp;#39;&lt;/span&gt;dn&lt;span class="st"&gt;&amp;#39;} na=$FORM{&amp;#39;&lt;/span&gt;na&lt;span class="st"&gt;&amp;#39;}\n&amp;quot;;
print LOGFILE &amp;quot;2. file_full=$file_full\n&amp;quot;;
print LOGFILE &amp;quot;3. filename=$file_name\n&amp;quot;;
print LOGFILE &amp;quot;4. urlFile=$FORM{&amp;#39;&lt;/span&gt;saveURL&lt;span class="st"&gt;&amp;#39;}\n&amp;quot;;
print LOGFILE &amp;quot;\n\n&amp;quot;;
#
#    END DEBUGGING
#***********************************************************
#
#
# Saving redline
#my $redline_filename = &amp;quot;$file_name&amp;quot;;
#print LOGFILE &amp;quot;\nRedline: $redline_filename\n&amp;quot;;
#C:\\Inetpub\\wwwroot\\cadviewer\\redlines\\Firma\\redline_01.red
#open(REDFILE , &amp;quot;&amp;amp;gt; &amp;quot; .  &amp;quot;C:\\Inetpub\\wwwroot\\cadviewer\\redlines\\Firma\\redline_01.red&amp;quot;);
$temp_file_name =&amp;quot;$file_name&amp;quot;;
#$temp_file_name =~ s/Inetpub\\wwwroot\\cadviewer\\redlines\\Firma/temp/; 
print LOGFILE &amp;quot;$temp_file_name&amp;quot;;
open(REDFILE , &amp;quot;&amp;amp;gt; &amp;quot; .  &amp;quot;$temp_file_name&amp;quot;) ||  &amp;amp;sendNotice;
print REDFILE &amp;quot;$FORM{&amp;#39;&lt;/span&gt;red&lt;span class="st"&gt;&amp;#39;}&amp;quot;;
close (REDFILE);
#copy($temp_file_name, $file_name) or die &amp;quot;File cannot be copied.&amp;quot;;
print LOGFILE &amp;quot;\n\ncopy $temp_file_name $file_name\n\n&amp;quot;;
close (LOGFILE);
#system(&amp;quot;copy C:\temp\00_EG_Chur_1_05.red  C:\Inetpub\wwwroot\cadviewer\redlines\Firma\00_EG_Chur_1_05.red&amp;quot;);
#system( &amp;quot;copy $temp_file_name $file_name&amp;quot; );




#print LOGFILE &amp;quot;Running cv7 redsaver\n&amp;quot;;
#
#   END SAVING REDLINE FILE
#***********************************************************
#
#
#
#***********************************************************
#***********************************************************
#   THIS PRINT &amp;quot;OK&amp;quot;  LINE IS REQUIRED.  CADVIEWER IS WAITING 
#   FOR THIS LINE TO MAKE SURE THAT THE REDLINES ARE SAVED
#
print &amp;quot;ok&amp;quot;;
#
#   PLEASE DO NOT REMOVE IT
#***********************************************************
#


exit(0);

sub sendNotice()
{
       
my $mailprog = &amp;#39;&lt;/span&gt;/usr/lib/sendmail&amp;#39;;
print &amp;lt;
&lt;h1&gt;Error Saving Redliner&lt;/h1&gt;

TEST2
}
&lt;/pre&gt;&amp;nbsp;&amp;nbsp; 
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;--------------------------------------------&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;The asp .net page i wrote looks like this&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;pre class="coloredcode"&gt;&amp;amp;lt;%@ Page Language=&lt;span class="st"&gt;&amp;quot;VB&amp;quot;&lt;/span&gt; AutoEventWireup=&lt;span class="st"&gt;&amp;quot;false&amp;quot;&lt;/span&gt; CodeFile=&lt;span class="st"&gt;&amp;quot;CGIreplacement.aspx.vb&amp;quot;&lt;/span&gt; &lt;span class="kwd"&gt;Inherits&lt;/span&gt;=&lt;span class="st"&gt;&amp;quot;java_CGIreplacement&amp;quot;&lt;/span&gt; %&amp;amp;gt;
&amp;lt;%
    &lt;span class="cmt"&gt;&amp;#39;  &amp;quot; save_redline_to_url=&amp;quot;&amp;quot;/cadviewer/java/CGIreplacement.aspx&amp;quot;&amp;quot;&amp;quot; &amp;amp; _
&lt;/span&gt;    Response.Write(&lt;span class="st"&gt;&amp;quot;@&amp;quot;&amp;quot;HTTP/1.1 200 OK&amp;quot;&lt;/span&gt; &amp;amp; vbCrLf)
    Response.Write(&lt;span class="st"&gt;&amp;quot;Content-type: text/html&amp;quot;&lt;/span&gt; &amp;amp; vbCrLf)
    

    
    &lt;span class="cmt"&gt;&amp;#39;Dim strSubmittedData As String = &amp;quot;dn=00_EG_Chur_1&amp;amp;saveLocation=Firma%5C00_EG_Chur_1_05.red&amp;amp;na=+&amp;amp;saveURL=true&amp;amp;red=p%2Cw%3D0%2C5%2C8268%2C26765%2C8268%2C2973%2C20045%2C2973%2C20045%2C26765%2C8268%2C26765%2C%7Bc%2C255%2C0%2C0%2C%7D%0AV%2C0%2C0%2C32000%2C32000%2CCurrView=&amp;quot;
&lt;/span&gt;    &lt;span class="kwd"&gt;Dim&lt;/span&gt; strParameters &lt;span class="kwd"&gt;As String&lt;/span&gt; = &lt;span class="st"&gt;&amp;quot;&amp;quot;&lt;/span&gt;
    
    
    
    &lt;span class="kwd"&gt;Dim&lt;/span&gt; parampos &lt;span class="kwd"&gt;As Integer&lt;/span&gt; = Request.RawUrl.IndexOf(&lt;span class="st"&gt;&amp;quot;?&amp;quot;&lt;/span&gt;)
    
    &lt;span class="kwd"&gt;Dim&lt;/span&gt; mioFile &lt;span class="kwd"&gt;As New&lt;/span&gt; IO.StreamWriter(&lt;span class="st"&gt;&amp;quot;c:\temp\hah55aha.txt&amp;quot;&lt;/span&gt;)
    mioFile.WriteLine(Request.RawUrl.ToString())
    mioFile.Close()
    
    
    
    
    
    &lt;span class="kwd"&gt;Dim&lt;/span&gt; idictArguments &lt;span class="kwd"&gt;As New&lt;/span&gt; System.Collections.Generic.Dictionary(Of &lt;span class="kwd"&gt;String&lt;/span&gt;, &lt;span class="kwd"&gt;String&lt;/span&gt;)()
    &lt;span class="kwd"&gt;If&lt;/span&gt; parampos &amp;gt;= 0 &lt;span class="kwd"&gt;Then&lt;/span&gt;
        strParameters = Request.RawUrl.Substring(parampos + 1)
        
        GetArguments(strParameters, idictArguments)
        &lt;span class="cmt"&gt;&amp;#39;MsgBox(idictArguments.Item(&amp;quot;red&amp;quot;).ToString())
        &amp;#39;Response.Write(idictArguments.Item(&amp;quot;red&amp;quot;).ToString())
&lt;/span&gt;        &lt;span class="kwd"&gt;Dim&lt;/span&gt; ioFile &lt;span class="kwd"&gt;As New&lt;/span&gt; IO.StreamWriter(&lt;span class="st"&gt;&amp;quot;c:\temp\hah4aha.txt&amp;quot;&lt;/span&gt;)
        ioFile.WriteLine(&lt;span class="st"&gt;&amp;quot;Hi There&amp;quot;&lt;/span&gt;)
        &lt;span class="cmt"&gt;&amp;#39;ioFile.WriteLine(idictArguments.Item(&amp;quot;red&amp;quot;).ToString())
&lt;/span&gt;        ioFile.Close()
        idictArguments = &lt;span class="kwd"&gt;Nothing
    End If
    
    
    
    Dim&lt;/span&gt; Dict &lt;span class="kwd"&gt;As&lt;/span&gt; IDictionary = Environment.GetEnvironmentVariables()
    &lt;span class="kwd"&gt;Dim&lt;/span&gt; sb &lt;span class="kwd"&gt;As&lt;/span&gt; StringBuilder = &lt;span class="kwd"&gt;New&lt;/span&gt; System.Text.StringBuilder()


    &lt;span class="kwd"&gt;For Each&lt;/span&gt; Item &lt;span class="kwd"&gt;As&lt;/span&gt; DictionaryEntry &lt;span class="kwd"&gt;In&lt;/span&gt; Dict
        sb.Append((&lt;span class="kwd"&gt;DirectCast&lt;/span&gt;(Item.Key, &lt;span class="kwd"&gt;String&lt;/span&gt;) &amp;amp; &lt;span class="st"&gt;&amp;quot; - &amp;quot;&lt;/span&gt;) + &lt;span class="kwd"&gt;DirectCast&lt;/span&gt;(Item.Value, &lt;span class="kwd"&gt;String&lt;/span&gt;) &amp;amp; vbCr &amp;amp; vbLf)
    &lt;span class="kwd"&gt;Next&lt;/span&gt;


    &lt;span class="cmt"&gt;&amp;#39; *** Read individual values
&lt;/span&gt;    &lt;span class="kwd"&gt;Dim&lt;/span&gt; QueryString &lt;span class="kwd"&gt;As String&lt;/span&gt; = Environment.GetEnvironmentVariable(&lt;span class="st"&gt;&amp;quot;QUERY_STRING&amp;quot;&lt;/span&gt;)
    
    
    &lt;span class="cmt"&gt;&amp;#39; *** Read all the incoming form data both text and binary
&lt;/span&gt;    &lt;span class="kwd"&gt;Dim&lt;/span&gt; FormData &lt;span class="kwd"&gt;As String&lt;/span&gt; = &lt;span class="st"&gt;&amp;quot;&amp;quot;&lt;/span&gt;
    &lt;span class="kwd"&gt;Dim&lt;/span&gt; Data &lt;span class="kwd"&gt;As Byte&lt;/span&gt;() = &lt;span class="kwd"&gt;Nothing
    Dim&lt;/span&gt; form_info &lt;span class="kwd"&gt;As String&lt;/span&gt; = &lt;span class="st"&gt;&amp;quot;&amp;quot;&lt;/span&gt;
    &lt;span class="kwd"&gt;If&lt;/span&gt; Environment.GetEnvironmentVariable(&lt;span class="st"&gt;&amp;quot;REQUEST_METHOD&amp;quot;&lt;/span&gt;) = &lt;span class="st"&gt;&amp;quot;GET&amp;quot;&lt;/span&gt; &lt;span class="kwd"&gt;Then&lt;/span&gt;
        form_info = Environment.GetEnvironmentVariable(&lt;span class="st"&gt;&amp;quot;QUERY_STRING&amp;quot;&lt;/span&gt;)
        &lt;span class="cmt"&gt;&amp;#39; print LOGFILE &amp;quot;Method found was: REQUEST_METHOD\n&amp;quot;;
&lt;/span&gt;        
        
    &lt;span class="kwd"&gt;ElseIf&lt;/span&gt; Environment.GetEnvironmentVariable(&lt;span class="st"&gt;&amp;quot;REQUEST_METHOD&amp;quot;&lt;/span&gt;) = &lt;span class="st"&gt;&amp;quot;POST&amp;quot;&lt;/span&gt; &lt;span class="kwd"&gt;Then
        
        Dim&lt;/span&gt; clen &lt;span class="kwd"&gt;As Integer&lt;/span&gt; = Context.Request.ContentLength
        &lt;span class="kwd"&gt;Dim&lt;/span&gt; buf &lt;span class="kwd"&gt;As Byte&lt;/span&gt;() = &lt;span class="kwd"&gt;New Byte&lt;/span&gt;(clen - 1) {}
        &lt;span class="kwd"&gt;Dim&lt;/span&gt; res &lt;span class="kwd"&gt;As Integer&lt;/span&gt; = Context.Request.InputStream.Read(buf, 0, clen)
        form_info = ByteArray2String(buf)
        
        &lt;span class="cmt"&gt;&amp;#39;Dim s As IO.Stream = Console.OpenStandardInput()
    
        &amp;#39;Dim br As New IO.BinaryReader(s)
    
        &amp;#39;Dim Length As String = Environment.GetEnvironmentVariable(&amp;quot;CONTENT_LENGTH&amp;quot;)
        &amp;#39;Dim Size As Integer = Int32.Parse(Length)
        &amp;#39;Data = New Byte(Size - 1) {}
        
        &amp;#39;br.Read(Data, 0, Size)
        &amp;#39; *** don’t close the reader!
    
        &amp;#39;FormData = System.Text.Encoding.[Default].GetString(Data, 0, Size)
        &amp;#39;read(STDIN,$form_info,$data_size);
        &amp;#39;	print LOGFILE &amp;quot;\nMethod found was: POST\n&amp;quot;;
&lt;/span&gt;    &lt;span class="kwd"&gt;Else&lt;/span&gt;
        &lt;span class="cmt"&gt;&amp;#39;print &amp;quot;Client used unsupported method&amp;quot;;
        &amp;#39;print LOGFILE &amp;quot;\nMethod found was: Client used unsupported method\n&amp;quot;;    
&lt;/span&gt;    &lt;span class="kwd"&gt;End If
    
  
    Dim&lt;/span&gt; nioFile &lt;span class="kwd"&gt;As New&lt;/span&gt; IO.StreamWriter(&lt;span class="st"&gt;&amp;quot;c:\temp\test.txt&amp;quot;&lt;/span&gt;)
    nioFile.WriteLine(&lt;span class="st"&gt;&amp;quot;Hi hi again&amp;quot;&lt;/span&gt;)
    nioFile.WriteLine(form_info)
    nioFile.WriteLine(FormData)
    nioFile.WriteLine(QueryString)
    nioFile.Close()
%&amp;gt;

&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;using these functions&lt;/p&gt;&lt;pre class="coloredcode"&gt;Partial &lt;span class="kwd"&gt;Class&lt;/span&gt; java_CGIreplacement
    &lt;span class="kwd"&gt;Inherits&lt;/span&gt; System.Web.UI.Page

    &lt;span class="cmt"&gt;&amp;#39;VB.NET to convert a byte array to a string.
&lt;/span&gt;    &lt;span class="kwd"&gt;Public Shared Function&lt;/span&gt; ByteArray2String(&lt;span class="kwd"&gt;ByRef&lt;/span&gt; baByteArrayToConvert &lt;span class="kwd"&gt;As Byte&lt;/span&gt;()) &lt;span class="kwd"&gt;As String
        Dim&lt;/span&gt; encText &lt;span class="kwd"&gt;As New&lt;/span&gt; System.Text.ASCIIEncoding()
        &lt;span class="kwd"&gt;Return&lt;/span&gt; encText.GetString(baByteArrayToConvert)
    &lt;span class="kwd"&gt;End Function

    Sub&lt;/span&gt; GetArguments(&lt;span class="kwd"&gt;ByRef&lt;/span&gt; strSubmittedData &lt;span class="kwd"&gt;As String&lt;/span&gt;, &lt;span class="kwd"&gt;ByRef&lt;/span&gt; idictParsedArguments &lt;span class="kwd"&gt;As&lt;/span&gt; IDictionary)
        &lt;span class="kwd"&gt;Dim&lt;/span&gt; strPairs &lt;span class="kwd"&gt;As String&lt;/span&gt;() = strSubmittedData.Split(&lt;span class="st"&gt;&amp;quot;&amp;amp;&amp;quot;&lt;/span&gt;c)
        &lt;span class="kwd"&gt;Dim&lt;/span&gt; strEachPair(2) &lt;span class="kwd"&gt;As String

        For&lt;/span&gt; iIndex &lt;span class="kwd"&gt;As Integer&lt;/span&gt; = 0 &lt;span class="kwd"&gt;To&lt;/span&gt; strPairs.Length() - 1 &lt;span class="kwd"&gt;Step&lt;/span&gt; 1
            &lt;span class="kwd"&gt;If&lt;/span&gt; strPairs(iIndex) &lt;span class="kwd"&gt;Is Nothing Then&lt;/span&gt;
                strPairs(iIndex) = &lt;span class="st"&gt;&amp;quot;&amp;quot;&lt;/span&gt;
            &lt;span class="kwd"&gt;End If&lt;/span&gt;

            strEachPair = strPairs(iIndex).Split(&lt;span class="st"&gt;&amp;quot;=&amp;quot;&lt;/span&gt;c)

            &lt;span class="kwd"&gt;If&lt;/span&gt; strEachPair(0) &lt;span class="kwd"&gt;Is Nothing Then&lt;/span&gt;
                strEachPair(0) = &lt;span class="st"&gt;&amp;quot;&amp;quot;&lt;/span&gt;
            &lt;span class="kwd"&gt;End If

            If&lt;/span&gt; strEachPair(1) &lt;span class="kwd"&gt;Is Nothing Then&lt;/span&gt;
                strEachPair(1) = &lt;span class="st"&gt;&amp;quot;&amp;quot;&lt;/span&gt;
            &lt;span class="kwd"&gt;End If&lt;/span&gt;
            strEachPair(1) = System.Web.HttpUtility.UrlDecode(strEachPair(1))
            idictParsedArguments.Add(strEachPair(0), strEachPair(1))
        &lt;span class="kwd"&gt;Next
    End Sub


End Class&lt;/span&gt;
&lt;/pre&gt;&amp;nbsp;</description></item></channel></rss>