I'm using a simple, simple download example app to fetch a file from a tomcat
server. It seems to work fine on Mozilla fireFox, but when I use it with safari
or opera I get the following error;

[Q]Error #2044: Unhandled IOErrorEvent:. text=Error #2038: File I/O Error.
at
flexDownloadExample/init()[/Applications/apache-tomcat-5.5.1/webapps/flexDownloa
dExample/src/flexDownloadExample.mxml:40]
at
flexDownloadExample/___flexDownloadExample_Application1_creationComple te()[/Appl
ications/apache-tomcat-5.5.1/webapps/flexDownloadExample/src/flexDownloadExample
..mxml:2]
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at
mx.core::UIComponent/dispatchEvent()[E:\dev\3.0.x\frameworks\projects\framework\
src\mx\core\UIComponent.as:9051]
at mx.core::UIComponent/set
initialized()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\ core\UIComponent
..as:1167]
at
mx.managers::LayoutManager/doPhasedInstantiation()[E:\dev\3.0.x\frameworks\proje
cts\framework\src\mx\managers\LayoutManager.as:698]
at Function/http://adobe.com/AS3/2006/builtin::apply()
at
mx.core::UIComponent/callLaterDispatcher2()[E:\dev\3.0.x\frameworks\projects\fra
mework\src\mx\core\UIComponent.as:8460]
at
mx.core::UIComponent/callLaterDispatcher()[E:\dev\3.0.x\frameworks\projects\fram
ework\src\mx\core\UIComponent.as:8403]
[/Q]

I have absolutely no idea why this is. I havent been able to test this in
internet explorer, but i'm guessing it will show the same error. My question
then is, why is it that the code below works for one browser and not for
another?

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
xmlns:cc="components.*"
layout="vertical" creationComplete="init(downloadProgress,startDownl oad)">

<mx:Script>
<![CDATA[

/**
* Hard-code the URL of file to download to user's computer.
*/
//public var DOWNLOAD_URL:String =
"http://localhost:9080/flexDownloadExample/hiRezImage.jpg";
private const DOWNLOAD_URL:String =
"http://cdmsvs10.cdmsdom.cdms.co.uk::9080/flexDownloadExample/hiRezImage.jpg";

/**
* Create a FileReference instance to handle the file download.
*/
private var fr:FileReference;

/**
* Define reference to the download ProgressBar component.
*/
private var pb:ProgressBar;

/**
* Define reference to the "Cancel" button which will immediately stop
* the current download in progress.
*/
private var btn:Button;

/**
* Set references to the components, and add listeners for the OPEN,
* PROGRESS, and COMPLETE events.
*/
public function init(pb:ProgressBar, btn:Button):void
{
// Set up the references to the progress bar and cancel button,
// which are passed from the calling script.
this.pb = pb;
this.btn = btn;

fr = new FileReference();
fr.addEventListener(Event.OPEN, openHandler);
fr.addEventListener(ProgressEvent.PROGRESS, progressHandler);
fr.addEventListener(Event.COMPLETE, completeHandler);
}

/**
* Begin downloading the file specified in the DOWNLOAD_URL constant.
*/
public function startFileDownload():void
{
var request:URLRequest = new URLRequest();
request.url = DOWNLOAD_URL;
fr.download(request);
}

/**
* When the OPEN event has dispatched, change the progress bar's label
* and enable the "Cancel" button, which allows the user to abort the
* download operation.
*/
private function openHandler(event:Event):void
{
pb.label = "DOWNLOADING %3%%";
btn.enabled = true;
}


/**
* While the file is downloading, update the progress bar's status.
*/
private function progressHandler(event:ProgressEvent):void
{
pb.setProgress(event.bytesLoaded, event.bytesTotal);
}

/**
* Once the download has completed, change the progress bar's label one
* last time and disable the "Cancel" button since the download is
* already completed.
*/
private function completeHandler(event:Event):void
{
pb.label = "DOWNLOAD COMPLETE";
btn.enabled = false;
}

/**
* Cancel the current file download.
*/
public function cancelFileDownload():void
{
fr.cancel();
pb.label = "DOWNLOAD CANCELLED";
btn.enabled = false;
}

]]>
</mx:Script>

<mx:Panel title="Download File" paddingTop="10" paddingBottom="10"
paddingLeft="10" paddingRight="10">
<mx:ProgressBar id="downloadProgress" label="" mode="manual" />
<mx:ControlBar horizontalAlign="right">
<mx:Button id="startDownload" label="Download..."
click="startFileDownload();" />
<mx:Button id="cancelDownload" label="Cancel"
click="cancelFileDownload();" enabled="false" />
</mx:ControlBar>
</mx:Panel>
</mx:Application>