coulix
coulix

Reputation: 3368

Flex HTTPservice and POST, Sending Files?

I use a basic Post to send data to a Django server.

The data consists of a base64 encoded 640*380 PNG image dynamically created by the flex component.

<mx:HTTPService id="formSend" showBusyCursor="true" 
    useProxy="false" url="http://127.0.0.1/form/" 
    method="POST" result="formSentConfirmation(event)"    fault="formSendingFailed(event)"/>



private function sendForm(url:String, message:String, meteo:Number):void {
    formSend.url = url;
    var params:Object = { message: message, image_data: getEncodedImage() }; 
    snapButton.label = "sending ...";
    formSend.send(params);
}

On the server side i can see that the data is in the request.POST not in request.FILES. That means the image is not send as a File with multiencode HTTP.

  1. Will i get into trouble on a real server ? since the limit is 200k for urlencoded POST var.

  2. How to make HTTPservice send the data as a file?

  3. Any other solutions?

Thanks

Upvotes: 2

Views: 12800

Answers (2)

franckyfranck
franckyfranck

Reputation: 55

Found something interesting than we can dig on it. Use this:

var urlLoader:URLLoader = new URLLoader();
    urlLoader.dataFormat = URLLoaderDataFormat.BINARY;
    urlLoader.data = _img.data;
    urlLoader.addEventListener(Event.COMPLETE,LoadedComplete);

    var request:URLRequest = new URLRequest("www.url.com?toto=toto");
    request.method = URLRequestMethod.POST
    request.contentType = "multipart/form-data";
    request.data = _img.data;
    request.requestHeaders = new Array(new URLRequestHeader("toto", "toto"));

    urlLoader.load(request);

Well with that i get something in C# server side the request content length is not empty and i got toto in the params and in the header, one problem in files collection there are no files sent ... where are the sent bytes ???

Upvotes: 2

inferis
inferis

Reputation: 1293

  1. Probably, yes. It depends whether you impose a hard limit on the the file size and how the destination page handles the request.

  2. I don't believe it's actually possible at the moment.

  3. Read this. FileReference is the recommended way of uploading files.

Upvotes: 0

Related Questions