Hi.

I recently had a question which I put to the forum here:

http://www.nabble.com/IMG-SRC-URL-in-iframe.-td20805408.html Generating IMG
SRC to replace CIDs. 

I believe I have found the answer (thanks to Ernesto's help) which I would
like some verification of if possible (not sure if it needs a wiki page):

Here's the solution:

1) In my application I create a new shared resource:

    @Override
    protected void init()
    {
        getSharedResources().add( "cidImageResource", new CIDImageResource()
);
        mountSharedResource( "/imageStuff", "cidImageResource" );
    }

2) My CIDImageResource class is a subclass of DynamicImageResource.

    It has a single important implementation of a method in it: byte[]
getImageData().

    This method will be passed a filename as a parameter. This filename is
the image file we wish to render and is known by its attachment on 
url-to-cid-image-resource?filename=image.png . Note that 'image.png' is the
name of a file that has previously been serialized onto the file system and
replaces the CID in the HTML email that we are rendering.

3) There is a magic class that I have that loads the HTML email data from
the filesystem and parses out the CIDs, replacing the
SRC="CID:sdkfhsakhfskdfh13213123" with the correct URL to the correct file.
This URL is gotten in the following way:

First we get the following:

            ResourceReference ref = new ResourceReference(
"cidImageResource" );

            RequestCycle requestCycle = getRequestCycle();

We then loop around all our known CID references in the HTML email and call
the following:

           String contentFileName = UserDefaults.resolveUserHomePath(
userName ) + uploadData.getUploadFileName();

           ValueMap parameters = new ValueMap();
           parameters.put( "filename", contentFileName );

          String link = requestCycle.urlFor( resourceReference, parameters
).toString();

Once we have the link to the file, we replace the correct "CID:". We do this
numerous times for the entire HTML email.

4) The HTML email is rendered in an iframe.

See my previous post, which I got working, and sets the innerHTML on the
iframe: 
http://www.nabble.com/Populate-IFRAME-innerHTML-on-AJAX-load-of-panel.-td20887803.html
iframe innerHTML post. 

The shared resource (cidImageResource) that I created in the application is
then called repeatedly during rendering of the iframe, and the image byte
data is returned to the browser and rendered correctly in place of the CIDs.

Does this sound about right? I hope this may be useful to someone else if it
is!

All the best, Graeme.
-- 
View this message in context: 
http://www.nabble.com/IMG-SRC-URL-in-iframe---part-2.-tp20907919p20907919.html
Sent from the Wicket - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to