Greetings flexcoders,

I have a need for my flex application to have a "saveimage" button that enables 
the user to save an image of part of the application.

I've been able to get this to work without too much trouble, but it still needs 
a bit of polish so I thought I'd ask if anyone has any insights or tips they'd 
like to share.

Currently I encode the image as a jpeg in flex, then send that bytearray to the 
server via remoting (I'm using flourine), where it is saved to an image file in 
a temp directory. The remoting call returns the url of an asp script and the 
name of the temp file in the querystring.
On receiving that url the flex app does a simple flash.net.navigateToURL( 
request,"_blank"), whereupon the server serves up the temp file with some 
suitable headers , e.g. something like this.

resp.ContentType = "application/octet-stream";
resp.AddHeader("Content-Disposition", "attachment; filename=" + "\"" + 
suggestedFileName + "\"");
resp.Cache.SetCacheability(HttpCacheability.NoCache);
resp.WriteFile(filePathToRead);            
resp.Flush();

All of which is great, the user gets an open/save prompt for the jpeg file as I 
hoped.

The only rather ugly thing about it is that in IE a new window is opened that 
then displays some rubbish about cancelled actions (???),
in firefox it's handled rather more elegantly  by a new tab that opens very 
briefly then closes itself down (Though I noticed my colleagues copy of firefox 
raises a bizarre sequence of "open popup?" warnings, which surprised me).

All of which is to be expected from the way I've done it, but is there a better 
way (that will work cross browser at least for the most part) ?
I'd really like for the user just to see the save/download prompt without any 
extra windows/tabs, if at all possible.

I'm mulling over whether loading the "filesave" url into a hidden Iframe might 
work, but It's all rather out of my experience at the moment and googling has 
thus far failed to reveal any obvious ways to go.

If anyone can point me in the right direction then it would be most helpful and 
much appreciated!

tia,

Jim.


______________________________________________________________________
This communication is from Primal Pictures Ltd., a company registered in 
England and Wales with registration No. 02622298 and registered office: 4th 
Floor, Tennyson House, 159-165 Great Portland Street, London, W1W 5PA, UK. VAT 
registration No. 648874577.

This e-mail is confidential and may be privileged. It may be read, copied and 
used only by the intended recipient. If you have received it in error, please 
contact the sender immediately by return e-mail or by telephoning +44(0)20 7637 
1010. Please then delete the e-mail and do not disclose its contents to any 
person.
This email has been scanned for Primal Pictures by the MessageLabs Email 
Security System.
______________________________________________________________________

Reply via email to