Flex-hack voor geverifieerde bestandsuploads

Does anyone know the file upload hack for Flex, which will allow files to be uploaded to authenticated web services via multipart form post? In this bug report from the Adobe site, a user reports:

Flash is niet compatibel met meerdere browsers als deze functie alleen werkt via   Javascript-hacks

Tot nu toe heb ik zo'n hack niet kunnen maken. Ik weet niet zeker wat ik hierna moet doen. Dit is wat ik tot nu toe heb geprobeerd (alles is niet gelukt of onmogelijk)

2

1 antwoord

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
}
1
toegevoegd