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.
______________________________________________________________________