Images don't load, Help please..

isis13's Avatar, Join Date: Jan 2010
Light Poster
Hello

Being new here, I apologize if this is in the wrong subsection (I did see the java section, but am not sure my error lies there).

I have been assigned a project where I am to create a server that lets clients connect and run a simulation, which runs on the server and gives the output to the client. The server requires matlab and gnuplot. The ouputs consist of 6 graphs created from the output data of matlab using gnuplot.

I am using netbeans6.1's run and deploy to test (hence am using Apache Tomcat 6.0.18 )

I am using a random string generator to use as a clients session and storing it in a cookie. The graphs are created on the server using this random string as part of its name (eg. <name>Ia.png).

Thus, to load this image, I am using a javascript to fetch the cookie with the name and then I display the image using document.write("<img src=\""+FILENAME+"\"></img>");

The problem that i encounter when i run this is that the client side shows a broken link (I have checked the link path, it is correct). Now the interesting thing is this; while the client is showing this broken link, if I force an event in netbeans (like say simply ctrl+s or even switch to a different tab to see another file/output), and then ask the client to refresh, the image loads just fine?! Through this, it is confirmed that the link path is correct.

I have no idea why this is occurring or any way to solve this and my deadline approaches so I would highly appreciate it if anybody could give even the slightest insight to what/why is this happening.

Thanks
nimesh's Avatar, Join Date: Apr 2009
Invasive contributor
In the below code, why are you using "\" after the filename?
document.write("<img src=\""+FILENAME+"\"></img>");

Check the output from the clients side, I mean check the HTML using view-> source from the browser after the page gets loaded. Check if the html appears correctly.
isis13's Avatar, Join Date: Jan 2010
Light Poster
This is the code that i now have for printing the image:

Code:
var n=get_cookie("fname");
document.write('<img src="'+n+'Ia.png\"></img>');
Here, the filename is the concatenation of the value of fname cookie and "Ia.png", the \ is an escape sequence for the " coming at the end of the image file name.


Here is the entire code:
Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
    <head>
        
        <title></title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <script type="text/javascript"> 

            //Function to get cookis on the server side from the client's browser .
            function get_cookie ( cookie_name )
            {
                var results = document.cookie.match ( '(^|;) ?' + cookie_name + '=([^;]*)(;|$)' );

                if ( results )
                    return ( unescape ( results[2] ) );
                else
                    return null;
            }
            
            
                
                
           
    </script>
    </head>
    <body bgcolor=#1953a0>

        
        
        
         
        
           
        
        <center>
            <script type="text/javascript">
                
                var n=get_cookie("fname");
             
                document.write('<img src="'+n+'Ia.png\"></img>');
                 
                
            </script>
            
        </center>
        
    </body>
</html>
Any thoughts?
nimesh's Avatar, Join Date: Apr 2009
Invasive contributor
did not noticed that it's an excape sequence

did you check the output on client side?
view source from the browser...
isis13's Avatar, Join Date: Jan 2010
Light Poster
Thanks for the quick reply.

The code i've shown above (2nd code), is the html i get after i view source on client's browser..
nimesh's Avatar, Join Date: Apr 2009
Invasive contributor
ok.

try making the below 2 lines the part of script tags within the header.

var n=get_cookie("fname");
document.write('<img src="'+n+'Ia.png\"></img>');

Or better make a function, and call that function from <body onLoad=function_name()>
venami's Avatar, Join Date: Dec 2008
Ambitious contributor
Code:
document.write('<img src="'+n+'Ia.png\"></img>');
Try changing the above line as below:

Make sure there is a "slash" (/ in case of Linux or \ in case of Windows) in the variable 'n'.
If there is no slash in the 'n' variable, do as follows:

Code:
document.write('<img src="' + n + '/Ia.png"></img>'); //here escape both the " quote or else don't escape both of them.
I think you are not getting the image due to the absence of the slash.

Last edited by venami; 4Jan2010 at 22:38.. Reason: Added a comment
isis13's Avatar, Join Date: Jan 2010
Light Poster
I tried making it a function in the header and use <body onLoad=function_name()>
and also tried the slash venami mentioned, but neither seemed to solve the problem..

The funny part is, that though this gives a broken link (and 404 if i right click and select 'view image'), if i make anything event in netbeans (the ide hosting this code) like change some tab or something like that and then refresh the page, the image appears. This leads me to believe that the path at least is correct since nothing happens to the path. I have also verified that the images do get created in my content folder.
isis13's Avatar, Join Date: Jan 2010
Light Poster
Edit:
I tried running tomcat completely independently of netbeans and the problem still persists, and this time, i cannot click anywhere (like changing a tab in the netbeans ide) so that the image loads.
shabbir's Avatar, Join Date: Jul 2004
Go4Expert Founder
The problem is not with your server but looks like you have url where there is no image file