Progress Error 8869

Cecil

19+ years progress programming and still learning.
I've upgraded from 10.1B to 10.2A and I had a working website which enabled users to upload a binary file from a web form. The code (except the .r code) has not changed only the OpenEdge upgrade.

If the user submits a form with a file, it works OK. It the user submits the same form without a file, WebSpeed generates an error in the server log file:

Code:
ERROR: Unable to open file /tmp/. File upload failed. (8869)

As far as I can tell the problem is within $DLC/../../web-disp.p. The error is happing way before it has executed any code that I have written.

It's like webspeed is expecting binary file to have been upload because the form encode type is multi-part. Any new startup parameter I might need?
 

Cecil

19+ years progress programming and still learning.
I've included an example HTML page which demonstrates multiple file uploads.

If you select a file for the first and third fields but not the second field and click on submit. WebSpeed will error "ERROR: Unable to open file /tmp/. File upload failed. (8869)" about the second field and will not process third field.

This was never a problem in 10.1B.

I have raised a support call to Progress and they are guessing that the latest release of 10.2A has been security tightened not to allow blank file upload fields.

I think I am going to have to create some sort of java script to fix the problem of not submitting blank "file" fields.

Code:
<div>

    <H1 ALIGN="center">
      <BR>Welcome to <FONT COLOR="#FF0000">Multiple Files Upload</FONT><BR>
    </H1>
    <HR WIDTH="70%">
    
    <table width="500" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
        <tr>
            <form action="`SELFURL`" method="post" enctype="multipart/form-data" name="form1" id="form1">
                <input type="hidden" name="go" value="`get-value('go')`" />
    
                <td>
                    <table width="100%" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF">
                        <tr>
                            <td><strong>Multiple Files Upload</strong></td>
                        </tr>
                        <tr>
                            <td>Select file<input name="ufile1" type="file" id="ufile1" size="50" /></td>
                        </tr>
                        <tr>
                            <td>Select file<input name="ufile2" type="file" id="ufile2" size="50" /></td>
                        </tr>
                        <tr>
                            <td>Select file<input name="ufile3" type="file" id="ufile3" size="50" /></td>
                        </tr>
                        <tr>
                            <td align="center"><input type="submit" name="Submit" value="Upload" /></td>
                        </tr>
                    </table>
                </td>
            </form>
        </tr>
    </table>
    
    <script language="SpeedScript">
        IF REQUEST_METHOD EQ 'POST' THEN
        DO:
    </script>
    
        <table>
            <tr>
                <td>File 1:</td>
                <td>`get-value('ufile1')`</td>
            </tr>
            <tr>
                <td>File 2:</td>
                <td>`get-value('ufile2')`</td>
            </tr>
            <tr>
                <td>File 3:</td>
                <td>`get-value('ufile3')`</td>
            </tr>
        </table>
    <script language="SpeedScript">
        END.
    </script>
</div>
 

Cecil

19+ years progress programming and still learning.
Status: Unverified

FACT(s) (Environment):Webspeed 3.1x

SYMPTOM(s):

Error 8869 uploading a file

ERROR: Unable to open file <filename>. File upload failed. (8869)

CAUSE:

fileUploadDirectory points to a virtual folder on the webserver

FIX:

Put the OS full path name of the upload directory in
fileUploadDirectory in ubroker.properties

This knowledge based article does not apply to the problem exactly.
Remember my problem is not uploading a file, it when I don't upload file is when I get a problem.
 

Cecil

19+ years progress programming and still learning.
Progress technical support are having a real tough time trying the compile/run the sample code in which I have supplied above.

I given them simple instructions on how to run it from the webspeed workshop.

Please can anyone else please try and test the above code.

Simple save the file as a fileuploadtest.html and save it in your PROPATH. From within webspeed workshop select the file and run it. Easy.
 

corby-fellas

New Member
Hi Mr B,

I've managed to get you code working now on our development web server, and I do indead get the same error message in my log file when leaving one or more of the fields blank (see below).

I'm running 10.1C03 on IIS on Windows Web Server 2008.

ERROR: Unable to open file temp\. File upload failed. (8869)
** ABL Debug-Alert Stack Trace **
--> web\objects\web-disp.p (c:\dlc10\tty\web\objects\web-disp.r) at line 754

You might want to add -debugalert to your Webspeed server startup parameters to check the line number on 10.2A. You could also try compiling src\web\objects\web-disp.p with LISTING. It should help you find out which line is causing the error. I've modifed you HTML to the following to get it going on our server.

Anders

Code:
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<HTML>
<HEAD>
<META NAME="AUTHOR" CONTENT="Your Name">
<TITLE>WebSpeed Script</TITLE>
<SCRIPT LANGUAGE="SpeedScript">
/* Create an unnamed pool to store all the widgets created by this procedure.
   This is a good default which assures that this procedure's triggers and
   internal procedures will execute in this procedure's storage, and that
   proper cleanup will occur on deletion of the procedure. */
CREATE WIDGET-POOL.
</SCRIPT>
</HEAD>
<BODY>
<SCRIPT LANGUAGE="SpeedScript">
  /*------------------------------------------------------------------
    File:
    Description:
    Created:
  -------------------------------------------------------------------*/
</SCRIPT>
<div>
    <H1 ALIGN="center">
      <BR>Welcome to <FONT COLOR="#FF0000">Multiple Files Upload</FONT><BR>
    </H1>
    <HR WIDTH="70%">
 
    <table width="500" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
        <tr>
            <form action="`SELFURL`" method="post" enctype="multipart/form-data" name="form1" id="form1">
                <input type="hidden" name="go" value="`get-value('go')`" />
 
                <td>
                    <table width="100%" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF">
                        <tr>
                            <td><strong>Multiple Files Upload</strong></td>
                        </tr>
                        <tr>
                            <td>Select file<input name="ufile1" type="file" id="ufile1" size="50" /></td>
                        </tr>
                        <tr>
                            <td>Select file<input name="ufile2" type="file" id="ufile2" size="50" /></td>
                        </tr>
                        <tr>
                            <td>Select file<input name="ufile3" type="file" id="ufile3" size="50" /></td>
                        </tr>
                        <tr>
                            <td align="center"><input type="submit" name="Submit" value="Upload" /></td>
                        </tr>
                    </table>
                </td>
            </form>
        </tr>
    </table>
 
    <script language="SpeedScript">
        IF REQUEST_METHOD EQ 'POST' THEN
        DO:
    </script>
 
        <table>
            <tr>
                <td>File 1:</td>
                <td>`get-value('ufile1')`</td>
            </tr>
            <tr>
                <td>File 2:</td>
                <td>`get-value('ufile2')`</td>
            </tr>
            <tr>
                <td>File 3:</td>
                <td>`get-value('ufile3')`</td>
            </tr>
        </table>
    <script language="SpeedScript">
        END.
    </script>
</div>
</BODY>
</HTML>
 

corby-fellas

New Member
Don't know if this helps, but with tracing you get the following...

It seems like there's a call for get-value("go") somewhere in Webspeed that performs the download. It may need to be extracted from a library.

Anders

Code:
[09/10/06@14:56:58.353+0100] P-004536 T-001668 2 WS 4GLTRACE   Run local-e4gl-options in escript-progs/jb.html [Main Block - escript-progs/jb.html @ 660]
[09/10/06@14:56:58.353+0100] P-004536 T-001668 2 WS 4GLTRACE   Func output-content-type in webutil/webstart.p "text/html" [Main Block - escript-progs/jb.html @ 688]
[09/10/06@14:56:58.353+0100] P-004536 T-001668 2 WS 4GLTRACE   Func get-value in webutil/webstart.p "go" [Main Block - escript-progs/jb.html @ 725]
[09/10/06@14:57:03.429+0100] P-005328 T-004872 1 WS -- ERROR: Unable to open file temp\. File upload failed. (8869)
[09/10/06@14:57:03.429+0100] P-005328 T-004872 1 WS -- ** ABL Debug-Alert Stack Trace **
[09/10/06@14:57:03.429+0100] P-005328 T-004872 1 WS -- --> web\objects\web-disp.p (c:\dlc10\tty\web\objects\web-disp.r) at line 754
[09/10/06@14:57:03.442+0100] P-005328 T-004872 2 WS 4GLTRACE   Run local-e4gl-options in escript-progs/jb.html [Main Block - escript-progs/jb.html @ 660]
[09/10/06@14:57:03.442+0100] P-005328 T-004872 2 WS 4GLTRACE   Func output-content-type in webutil/webstart.p "text/html" [Main Block - escript-progs/jb.html @ 688]
[09/10/06@14:57:03.443+0100] P-005328 T-004872 2 WS 4GLTRACE   Func get-value in webutil/webstart.p "go" [Main Block - escript-progs/jb.html @ 725]
[09/10/06@14:57:03.443+0100] P-005328 T-004872 2 WS 4GLTRACE   Func get-value in webutil/webstart.p "ufile1" [Main Block - escript-progs/jb.html @ 758]
[09/10/06@14:57:03.443+0100] P-005328 T-004872 2 WS 4GLTRACE   Func get-value in webutil/webstart.p "ufile2" [Main Block - escript-progs/jb.html @ 762]
[09/10/06@14:57:03.443+0100] P-005328 T-004872 2 WS 4GLTRACE   Func get-value in webutil/webstart.p "ufile3" [Main Block - escript-progs/jb.html @ 766]
 

Cecil

19+ years progress programming and still learning.
Thanks Anders for your contributions.:)

Well after 5 days of pushing water uphill using only a fork. Progress Tech support has final recognised that there is a bug and the problem has been passed to Progress US.

After developing a very simple HTML page and emailing it the support team, they where expecting the error to appear on screen. I did tell them to look at the WTB server log file.

This Monday coming, the US tech guys are going to review the bug and hopefully get a hot fix out me asap.

Bug number OE00191904.
WebSpeed bug has been fixed. And it may take up to 7 days for Progress development to provide a temp fix and the bug fix will be available in the next Service Pack 03.
 
Top