Flex HTTPservice和POST,发送文件?

时间:2008-12-13 16:15:46

标签: django flex http

我使用基本的Post将数据发送到Django服务器。

数据由flex动态创建的base64编码的640 * 380 PNG图像组成 成分

<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);
}

在服务器端,我可以看到数据在request.POST中 不在request.FILES。这意味着图像不会作为具有多码HTTP的文件发送。

  1. 我会在真正的服务器上遇到麻烦吗?因为urlencoded POST var。

  2. 的限制是200k
  3. 如何让HTTPservice将数据作为文件发送?

  4. 还有其他解决方案吗?

  5. 由于

2 个答案:

答案 0 :(得分:2)

找到了一些有趣的东西,而不是我们可以挖掘它。使用此:

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);

好吧,我在C#服务器端得到一些东西,请求内容长度不为空,我得到了params和标题,文件集合中的一个问题是没有发送文件...发送的字节在哪里???

答案 1 :(得分:0)

  1. 可能是的。这取决于您是否对文件大小以及目标页面处理请求的方式施加了硬性限制。

  2. 我认为目前实际上不可能。

  3. 阅读this。 FileReference是上传文件的推荐方式。