cancel
Showing results for 
Search instead for 
Did you mean: 

Info: Dynamic image with https link wont work.

Former Member
0 Kudos

Hi,

This may be obvious or common knowledge but wasn't for me. When specifying a https location for a dynamic image it doesn't appear. It needs to be http.

Just in case this happens to someone else.

I still haven't figured out if I can change the database connection of reports that have CommandTables in them yet though?

P

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

I've used Fiddler to view the differences between both scenarios.

No error is reported by Fiddler.

The only difference is the content length of the failed request is less than the successful one.

In the failed case it thinks it has received a 708 byte png file that is 262 x 262.

HTTP/1.1 200 OK

Content-Type: image/png

In the success case it receives a 10,205 byte png file that is 113w x 112h.

The report was created with the image as an OLE Object, the Object type is a bitmap image and the graphic location is set to point to the parameter.

Regards,

Patrick

ted_ueda
Employee
Employee
0 Kudos

You should be able to see the image binary being streamed out in the HTTP trace.

What I'm trying to determine is whether the image is being sent blank from the server, or it's being blanked in the client.

For example, default Internet Explorer setting is to not save any files sent via HTTPS on the client machine - so you may get it blanked out client side.

Sincerely,

Ted Ueda

Answers (6)

Answers (6)

Former Member
0 Kudos

Hi Ted,

Thanks for your help. It's good to have a definite answer. As I said previously it's no problem to use HTTP instead of HTTPS.

Regards,

Patrick

ted_ueda
Employee
Employee
0 Kudos

Thanks for posting!

It'll help other people out there who've encounter the same issue you did.

Sincerely,

Ted Ueda

Former Member
0 Kudos

And just in case it doesn't like gifs I also tried:

https://ktwo.sslpowered.com/ktwo.biz/logo/prologica-logo2.jpg

And it didn't work.

ted_ueda
Employee
Employee
0 Kudos

Ok - I've misunderstood your workflow. I think I do now, but unfortunately, I don't think it can be done.

You're using the "Graphic Location" formula to specify a URL for the image. When you return a string with http://, it's working, but not with https://.

That's currently the behavior in Crystal Reports 2008 Designer, and CR4E CRJ SDK reflects that behavior.

As you've indicated, it doesn't pass through the HTTPS request to the client, but the engine tries to access the image file directly and re-stream it out to the client, but cannot if the resource is HTTPS.

Since there's currently no support for the CR 2008 Designer product itself, it's likely not something that would be implemented in CR4E in the near future.

Sincerely,

Ted Ueda

Former Member
0 Kudos

More info:

I tried setting the parameter for the dynamic image to an external https location that is trusted and it did not appear in the report.

https://internetbanking.aib.ie/roi/banner/aiblogo.gif

Former Member
0 Kudos

Hi Ted,

It looks like the data returned from CrystalReportViewerHandler is incorrect.

The data going through Fiddler I presume is the data returned from the server before it hits IE.

A direct https request to the image using IE displays the image correctly.

i.e

https://devpc1:8080/WebApp/reports/report_logo.jpg

The Ajax request sent by Crystal report viewer to

/WebApp/CrystalReportViewerHandler?dynamicimage=crystal124084376698012051.png

with the parameter set to https://devpc1:8080/WebApp/reports/report_logo.jpg returns incorrect data from the server.

This is also the behaviour in Firefox. Firebug in Firefox also shows the same data as Fiddler.

Could it be the case that untrusted https certs cause trouble in the internals of CrystalReportViewerServlet?

Also, using Fiddler, during the loading of the report around the time of the request:

/WebApp/CrystalReportViewerHandler?dynamicimage=crystal124084376698012051.png

I was expecting to see a request to WebApp/reports/report_logo.jpg as it would fetch the image dynamically? At what point does the CrystalReportViewerServlet fetch the image to display?

Regards,

Patrick

ted_ueda
Employee
Employee
0 Kudos

As for the HTTPS request, is it the web viewer?

Sincerely,

Ted Ueda

Former Member
0 Kudos

Hi Ted,

Thanks for your replies.

I've narrowed down the failure with my command table. The error was about an invalid table alias which I may have misunderstood as the same problem as people were having with CommandTables and changing Database source.

What it boiled down to was one particular report had an "&" in the table alias name, which throws an exception in replaceConnection. When the table alias was changed in the report I could then change the datasource no problem.

With regards the https dynamic image, yes it's the web viewer.

Kind regards,

Patrick

ted_ueda
Employee
Employee
0 Kudos

As for the image, is the http URL being sent incorrect (i.e., when you specify https, is it still trying to connect to http), or is the image being retrieved but not shown?

Sincerely,

Ted Ueda

Former Member
0 Kudos

Hi Ted,

I'm not sure I understand your question fully but I'll try give more info.

I have a parameter called Logo. The value of that parameter is a https url.

The report loads and the image is not present.

When I enter the url into a web browser the image loads correctly so the URL is correct.

If I change the url to a http location it will display in the report.

In Firebug I can see a request like this:


https://localhost:8080/WebApp/CrystalReportViewerHandler?dynamicimage=crystal124058671923846987.png

Firebug seems to think it has returned a blank image of size 262 * 262. The image I request is 113 * 113.

When I use http the request is this:


http://localhost:8888/WebApp/CrystalReportViewerHandler?dynamicimage=crystal12405854284818789047937565519495.png

It returns the correct image.

If I can give more info please let me know. I can just use a http location, that's no problem. Perhaps certs is causing it to not work.

Regards,

Patrick

ted_ueda
Employee
Employee
0 Kudos

If you use a HTTP analyzer like [Fiddler|http://www.fiddler2.com/fiddler2/] or [Charles|http://www.charlesproxy.com/], do you see any error messages associated with the HTTPS request?

Sincerely,

Ted Ueda

ted_ueda
Employee
Employee
0 Kudos

Are you on CR4E 2.0 SP1?

A few fixes for dynamic images and command table change connection infos are listed in the README file there.

Sincerely,

Ted Ueda