1

在我的项目中,我们需要使用 flex 4.6 将网络摄像头拍摄的图像保存在默认路径中,但在 flex 中提供默认路径(将图像保存在 C:\temp.. 等默认路径中)是不可能的,因此我们正在传递捕获的图像的字节数组从 flex 到 .net 中的 .ashx 页面,图像保存在默认路径中,但 imagebytes 没有保存(显示图像中没有数据)。如果有人知道,请告诉我。

4

1 回答 1

1

最后,我成功地将图像字节从 flex 传递到 ashx 页面,如下所示

//Declare a string in script tag(Initialize a string before init() )
[Bindable]public var str64enc:String="";

//creating object for bytearray
[Bindable]public var imgbytes:ByteArray=new ByteArray(); 

//creating object for bitmapdata
[Bindable]public var picture1:BitmapData=new BitmapData(103,103,true);

**In your code**
var png:PNGEncoder=new PNGEncoder();
imgbytes=png.encode(picture1);

var base64enc:Base64Encoder=new Base64Encoder();
base64enc.encodeBytes(imgbytes);

str64enc=base64enc.toString();

分步程序:--------

1-采用 base64encoder 并对字节数组进行编码,如下所示:

var base64enc:Base64Encoder=new Base64Encoder();
base64enc.encodeBytes(imgbytes);

2-然后将该base64编码器对象(在本例中为“base64enc”)分配给字符串

3-在 HTTPSERVICE 中,您需要传递该字符串,例如:

<mx:HTTPService id="savepcktdata" method="POST"
    url="ur's destination path like..(axis/security/security.aspx)"
        result="savepcktdata_resultHandler(event)"                      
        resultFormat="text">
            <mx:request>
    <Operation>savepcktdata</Operation>     

    <bytes>
           {str64enc}
    </bytes>

    </mx:request>   
</mx:HTTPService>

4-在 .aspx 页面中,您需要检索如下:

string str = Convert.ToString(Request.Form["bytes"]);

结论:为了将图像字节从 flex(flash builder 4.6) 传递到 dotnet (visual studio),您需要像上面的代码一样通过 base64 字符串。

以下是与此问题相关的有用链接

如何将图像从 flex 应用程序传递到 asp net c# web 服务?asp-net-c-sharp-web 服务

于 2013-11-20T11:53:25.300 回答