Uiteindelijk is dit wat voor mij werkte. Ik heb mijn webservice aangepast om een stroom bytes te accepteren in plaats van een uit meerdere bestanden bestaand bestand. Vervolgens heb ik URLLoader
gebruikt om de bytes naar de service te uploaden.
private var fileReference:FileReference;
public function loadFile()
{
fileReference.addEventListener(Event.COMPLETE, fileLoaded);
fileReference.load();
}
private function fileLoaded(evt:Event):void{
fileReference.removeEventListener(Event.COMPLETE, fileLoaded);
startUpload();
}
public function startUpload():void {
var xml:String =//xml to post along with the file ;
var url:String =//url to the web service
var bytes:ByteArray = new ByteArray();
bytes.writeUTFBytes(fileReference.name);
bytes.writeUTFBytes(xml);
bytes.writeBytes(fileReference.data);
bytes.position = 0;
var urlLoader:URLLoader = new URLLoader();
var request:URLRequest = new URLRequest(url);
request.data = bytes;
request.method = URLRequestMethod.POST
request.contentType = "application/octet-stream";
urlLoader.addEventListener(Event.COMPLETE, uploadComplete);
urlLoader.addEventListener(flash.events.IOErrorEvent.IO_ERROR, uploadError);
urlLoader.load(request);
}
private function uploadComplete(e:Event):void {
//handle success
}
private function uploadError(e:Event):void {
//handle failure
}